파일 목록이 있고 하나의 명령을 사용하여 이동하십시오.

파일 목록이 있고 하나의 명령을 사용하여 이동하십시오.

일부 검색 기준에 따라 많은 파일을 찾는 명령을 실행했습니다. 다음과 같이 파일을 반환합니다.

./somepath/somepath/file.something
./asdf/asdf/s.php
./etc/a.php
./a/b/c/d/e/f/g.jpg

그래서 이 출력을 파일(즉, 한 줄에 하나의 파일)로 캡처하면 파일을 반복하고 파일을 하나씩 지정된 디렉터리로 이동하는 명령을 작성하는 데 도움을 줄 수 있는 사람이 있는지 궁금합니다.

미리 감사드립니다.

답변1

while read -r filename
  do
  mv -- "$filename" directory
done < list_of_files.txt

테스트되지 않았지만(Windows를 실행하는 업무용 PC를 사용하고 있습니다) 작동할 것입니다.

답변2

your_command | xargs -I% mv "%" dest_dir

명령이 다음과 같 find거나 파일 이름을 null로 종료하는 방법이 있는 경우:

your_command | xargs -0 -I% mv "%" dest_dir

또는

find [find-args] -print0 | xargs -0 -I% mv "%" dest_dir

파일 이름을 종료하기 위해 null을 사용하면 공백, 개행 등을 포함할 수 있는 파일 이름에 대해 작업할 수 있습니다.

xargs이미 파일을 생성한 경우 다음을 사용하여 파일을 처리할 수도 있습니다 .

xargs -a filename -I% mv "%" dest_dir

답변3

파일 이름에 공백이 포함되어 있지 않은 경우 또 다른 옵션은 다음과 같습니다.

mv `search_command_here` dest_directory

(백틱 구문도 bash-ism이지만 질문에서는 이것이 Linux에 있고 모든 주요 Linux 배포판이 기본적으로 bash를 사용한다고 구체적으로 명시하고 있습니다.)

관련 정보