이동하려는 파일 위치 목록이있는 텍스트 파일이 있습니다. 먼저 임시 디렉토리로 이동하고 원본 디렉토리에서 파일을 이동 한 다음 파일을 원래 위치로 다시 이동하십시오.`xargs`는이 문제와 관련이 있습니까?
목록 파일은 다음과 같은 말에 의해 생성 된 포맷하는 find 명령,이다 : 나는 화면에서 파일을 조작 할 수 sed
를 사용하고 현재
~/$ find . -name "*.[ch]" > ~/tmp/my_file_list.txt
하고, 절단 및 출력을 붙여 명령을 실행합니다. 나는이 공격을 찾을 수 있지만, 그것은 작동 :
~/$ sed -r 's_.+_cp & ~/tmp/_' ~/tmp/my_file_list.txt
~/$ sed -r 's_.+/(.+)_cp ~/tmp/\1 &_' ~/tmp/my_file_list.txt
(복사 ... 붙여 넣기 ... 주춤)
(복사 및 붙여 넣기 출력, 다시 파일을 넣어)어떻게 단순히 복사 및 붙여 넣기없이 위의 두 줄을 할 수 있을까 ... 나는 xargs 내가 갈망 솔루션을 개최 생각.
[편집]공백 다루는 : bash
로 출력
~/$ sed -r 's_.+_cp "&" ~/tmp/_' ~/tmp/my_file_list.txt
및
~/$ sed -r 's_.+/(.+)_cp "~/tmp/\1" "&"_' ~/tmp/my_file_list.txt
파일 이름에 공백이 포함되어 있습니까? –
아니요,하지만 일반적인 경우의 결함을 지적하면 편집 할 것입니다. – Jamie