답변:
검색 . -maxdepth 1 -exec mv {} .. \;
숨겨진 파일도 이동합니다.
다음과 같은 메시지가 나타납니다.
mv :`. '를 움직일 수 없습니다 `../. ': 장치 또는 리소스 사용량이 많음
이동하려고 할 때 .
(현재 디렉토리) 아무런 피해를주지 않습니다.
-maxdepth 1
확실하게 사용하겠습니다 .
나는이 주제를 처음 접했기 때문에 여기에왔다. 어떤 이유로 위의 방법으로 나를 속이지 않았습니다. 모든 파일을 디렉토리에서 상위 디렉토리로 옮기는 것은 다음과 같습니다.
cd to/the/dir
mv * ../
(cd ${ANDROID_NDK_HOME}/android-ndk-r14b/ && mv * ../)
쉘에 이것을 입력하십시오 :
mv *.* ..
모든 파일을 한 레벨 위로 이동합니다.
문자 *
는 와일드 카드입니다. 따라서 *.deb
모든 .deb 파일 Zeitgeist.*
을 이동시키고 Zeitgeist.avi 및 Zeitgeist.srt를 하나의 폴더 위로 이동합니다 ..
. 물론 상위 디렉토리를 나타냅니다.
폴더 등을 포함하여 모든 것을 이동하려면 *
대신*.*
*
하지 않으려 고합니다*.*
bash에서는 shopt -s dotglob 를 사용하여 모든 파일을 * 일치시키고 간단히
shopt -s dotglob; mv * ..
이 설정은 변경하기 전까지 쉘에 대해 영구적이기 때문에 최상의 해결책은 아닙니다.
shopt -u dotglob
그러나 나는 그것이 좋다고 생각합니다.
(shopt -s dotglob && mv * ..)
. 그런 식으로 옵션은 해당 서브 쉘에만 국한됩니다.
Linux에서 모든 파일과 폴더를 상위 디렉토리로 이동하는 것은 간단합니다.
해당 폴더로 이동하여 다음 명령을 사용하십시오.
mv * /the full path
예를 들어 파일과 폴더가 다음과 같은 경우
/home/abcuser/test/1.txt
2.txt
3.jpg
4.php
1folder
2folder
cd를 통해 해당 폴더로 이동하십시오.
cd /home/abcuser/test
mv * /home/abcuser
모든 파일과 폴더가 abcuser 폴더 (부모 디렉토리)로 이동합니다.
/the full path
Linux에서는 작동하지 않으므로로 공백을 이스케이프해야합니다 /the\ full\ path
.
디렉토리를 변경할 필요가 없습니다. 경로 끝에 *를 포함하십시오.
mv /my/folder/child/* /my/folder/
위는 숨겨지지 않은 파일 만 이동합니다. 숨겨진 파일 만 이동하려면. *를 사용하십시오.
mv /my/folder/child/.* /my/folder/
위의 두 명령을 하나의 명령으로 결합 할 수 있습니다.
mv /my/folder/child/{.,}* /my/folder/
하위 디렉토리로 전환하고 파일을 복사하거나 이동하려면 다음 명령을 실행하십시오.
예 : a는 상위 디렉토리이고 b는 하위 디렉토리입니다. 모든 파일을 b에서 a로 (하위 디렉토리에서 상위 디렉토리로) 이동 / 복사하려고합니다.
cd b
cp * ..
mv * ..