![Linux에서 mv 및 mkdir 명령과 함께 xargs 사용](https://rvso.com/image/1317540/Linux%EC%97%90%EC%84%9C%20mv%20%EB%B0%8F%20mkdir%20%EB%AA%85%EB%A0%B9%EA%B3%BC%20%ED%95%A8%EA%BB%98%20xargs%20%EC%82%AC%EC%9A%A9.png)
명령을 사용하여 디렉토리를 생성하려고 합니다 mkdir
. 그러나 파일의 하위 집합을 해당 디렉터리로 이동하고 싶습니다. 사용할 수 있다는 것을 이해합니다.xargs, 그러나 내 시도는 실패했습니다. 예를 들어, 나는 mkdir test | xargs -i mv test.text {}
. 디렉터리를 생성하지만 test.txt
생성된 후에 파일을 디렉터리로 이동하지 않습니다 .
답변1
mkdir
아무 것도 출력하지 않으므로 xargs
유용한 작업을 수행하지 않습니다. 나는 당신이 원하는 것이 무엇인지 정확히 이해하지 못하므로 질문을 더 잘 설명해야합니다.
"파일의 하위 집합을 해당 디렉터리로 이동하고 싶습니다." -> 이 하위 집합의 파일이 하나 이상의 특성을 공유합니까? 그렇다면 다음을 사용하십시오.찾다다음과 같은 명령:
find [conditions] -exec mv "{}" dirname \;
디렉토리 이름을 두 번 입력하는 것을 피하고 싶거나 스크립트에서 이 작업을 수행하는 경우 다음과 같이 할 수 있습니다.
dirname=test
mkdir $dirname && mv filename $dirname
답변2
나는 mkdir이 xargs로 파이프할 출력을 생성하지 않는다고 생각합니다.
"mkdir test1 test2 testhello3 | grep hello"를 수행하면 출력이 생성되지 않지만 "ls | grep hello"를 수행하면 "testhello3"이 표시됩니다.
먼저 폴더를 생성한 다음 ls, grep, xargs를 사용하여 수행할 수 있습니까?
ls | grep (unique search to get folder name) | xargs -i mv test.txt {}
파일 이동 기준에 대한 자세한 정보가 도움이 될 수 있습니다.
답변3
내 생각에는 user49740의 답변에 가깝습니다.
mkdir test && find -type f -name 'test.*' -exec mv {} test \;
얼마나 많은 디렉터리를 생성하시겠습니까?