Linux (Ubuntu)에서 모든 파일과 디렉토리를 상위 디렉토리로 어떻게 이동합니까?
답변
검색 . -maxdepth 1 -exec mv {} .. \;
숨겨진 파일도 이동합니다.
다음과 같은 메시지가 나타납니다.
mv :`. '를 움직일 수 없습니다 `../. ': 장치 또는 리소스 사용량이 많음
이동하려고 할 때 .
(현재 디렉토리) 아무런 피해를주지 않습니다.
답변
나는이 주제를 처음 접했기 때문에 여기에왔다. 어떤 이유로 위의 방법으로 나를 속이지 않았습니다. 모든 파일을 디렉토리에서 상위 디렉토리로 옮기는 것은 다음과 같습니다.
cd to/the/dir
mv * ../
답변
쉘에 이것을 입력하십시오 :
mv *.* ..
모든 파일을 한 레벨 위로 이동합니다.
문자 *
는 와일드 카드입니다. 따라서 *.deb
모든 .deb 파일 Zeitgeist.*
을 이동시키고 Zeitgeist.avi 및 Zeitgeist.srt를 하나의 폴더 위로 이동합니다 ..
. 물론 상위 디렉토리를 나타냅니다.
폴더 등을 포함하여 모든 것을 이동하려면 *
대신*.*
답변
다음보다 더 간단 할 수는 없습니다.
mv * ../
숨겨진 파일을 이동하려면
mv /path/subfolder/{.,}* /path/
mv
파일을 이동하는 명령이며 *
모든 파일과 폴더를 의미 ../
하며 상위 디렉토리의 경로입니다.
답변
bash에서는
shopt -s dotglob
를 사용하여 모든 파일을 * 일치시키고 간단히
shopt -s dotglob; mv * ..
이 설정은 변경하기 전까지 쉘에 대해 영구적이기 때문에 최상의 해결책은 아닙니다.
shopt -u dotglob
그러나 나는 그것이 좋다고 생각합니다.
답변
오류가 발생하지 않고 매번 작동하는 방법 :
ls -1A . | while read -r file
do
mv "./${file}" ..
done
답변
find . -maxdepth 2 -type f -exec mv {} .. \;
위의 변형을 사용하여 모든 파일을 하위 폴더에서 상위 폴더로 옮겼습니다.
연도별로 폴더에 데이터가 있지만 메타 데이터를 사용하면 동일한 폴더에 모두 보관할 수있어 관리하기가 더 쉽습니다.
예.
/data/2001/file_1
/data/2002/file_2
/data/2003/file_3