답변:
(GNU 가정 )에 -t
대한 옵션이 누락되었습니다 .mv
mv
cat /tmp/list.txt | xargs mv -t /app/dest/
또는 더 짧음 (X Tian의 답변에서 영감을 얻음) :
xargs mv -t /app/dest/ < /tmp/list.txt
선행 및 가능한 후행 공백이 제거됩니다. 파일 이름 안에 공백이 있으면 문제가 발생합니다.
파일 이름에 공백이나 탭, 따옴표 또는 백 슬래시가있는 경우 GNU xargs
를 가정하면 다음을 사용할 수 있습니다.
sed 's/^ *//' < /tmp/list.txt | xargs -d '\n' mv -t /app/dest/
파일 이름이 비교적 제정이라고 가정하면 (개행이나 이상한 문자는 없음) :
while read file; do mv "$file" /app/dest/; done < list.txt
이상한 파일 이름을 처리하려면 (파일 이름에 줄 바꿈이 있으면 중단됨)
while IFS= read -r file; do mv "$file" /app/dest/; done < list.txt
cp -Hr
있지만 OSX cp
가 그것을 지원 하는지 모르겠습니다 .
mv `cat /tmp/list.txt` /app/dest/
(시작시 공백은 무시됩니다)