Linux에서 mv 및 mkdir 명령과 함께 xargs 사용

Linux에서 mv 및 mkdir 명령과 함께 xargs 사용

명령을 사용하여 디렉토리를 생성하려고 합니다 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 \;

얼마나 많은 디렉터리를 생성하시겠습니까?

관련 정보