두 개의 파일 이름과 디렉토리 이름을 가진 파일이 있습니다. mv
파일 이름 파일의 각 줄에 있는 명령을 디렉터리 이름 파일의 각 줄에 매핑하고 싶습니다 . 파일이 작습니다.
도움이 된다면 파일 이름을 순서대로 지정할 수 있습니다(예: f1, f2, f3...f1000). 파일과 디렉토리를 반복하는 방법이 있습니까?
세 가지 사용 사례가 있을 수 있습니다. 하나의 파일을 여러 디렉터리에, 여러 파일을 하나의 디렉터리에, 여러 파일을 여러 디렉터리에(제 경우에는 1개의 파일/라인 = 1개의 디렉터리/라인). 내 사용 사례는 마지막 범주에 속합니다. 일부 사용 사례에서 이것이 사용되는 것을 보았지만 xargs
내 사용 사례에 맞게 수정하는 방법을 잘 모르겠습니다.
다음 질문은 도움이 되지 않았습니다.https://stackoverflow.com/questions/11942422/moving-large-number-of-files
답변1
주어진
$ head files dirs
==> files <==
foo
bar
baz
==> dirs <==
foodir
bardir
bazdir
그런 다음 새로운 bash 버전을 사용하십시오.
$ while IFS= read -r -u3 f && IFS= read -r -u4 d; do
echo mv "$f" "$d/"
done 3<files 4<dirs
mv foo foodir/
mv bar bardir/
mv baz bazdir/
또는 GNU를 사용하십시오parallel
$ parallel --xapply echo mv {1} {2}/ :::: files :::: dirs
mv foo foodir/
mv bar bardir/
mv baz bazdir/