SSH를 사용하여 한 디렉터리에서 중첩된 디렉터리로 파일을 이동하는 방법은 무엇입니까?

SSH를 사용하여 한 디렉터리에서 중첩된 디렉터리로 파일을 이동하는 방법은 무엇입니까?

모든 파일(폴더나 디렉터리는 제외)을 기존 폴더나 디렉터리보다 두 수준 아래로 이동하는 방법을 알고 싶습니다.

답변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해당 파일을 괄호 안에 넣으세요.)

관련 정보