모든 파일(폴더나 디렉터리는 제외)을 기존 폴더나 디렉터리보다 두 수준 아래로 이동하는 방법을 알고 싶습니다.
답변1
find 명령을 사용해야 합니다.
find . -type f -name "*" -print0 | xargs -0 -I {} mv {} ../backup_dir ; mv ../backup_dir ./new/directory
find가 이동할 새 파일을 찾는 루프에 갇히는 것을 방지하기 위해 파일을 한 수준 위로 옮겼습니다. 그런 다음 디렉터리를 두 수준 아래로 이동합니다.
현재 디렉터리의 파일만 필요한 경우 다음 명령을 사용할 수 있습니다.
find . -type f -maxdepth 1 -name "*" -print0 | xargs -0 -I {} mv {} ../backup_dir
답변2
zsh를 사용할 수 있다면 이는 매우 간단합니다. 이 패턴은 *
모든 파일(디렉터리 포함)과 일치합니다. 일반 파일만 일치시키려면 다음을 추가하십시오.글로벌 예선 .
. Glob 한정자는 zsh의 기능입니다.
mv *(.) existing/subsubdirectory/
(이름이 ("dot-file")로 시작하는 파일은 실제로 *
건너뜁니다 .
. 여기서는 문제가 되지 않을 수 있지만 해당 파일을 이동해야 하는 경우 D
해당 파일을 괄호 안에 넣으세요.)