Linux에서 파일과 디렉토리를 상위 폴더로 어떻게 이동합니까? Linux (Ubuntu)에서 모든 파일과

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