리눅스에서 첫 번째 결과를 찾아서 이름을 바꾸시겠습니까?


0

이 명령을 사용해 보았습니다.

find *.txt | head -1 | xargs -0 mv *.txt test.txt

나는 받는다.

mv : target '02 .txt \ n '은 (는) 디렉토리가 아닙니다

뭐가 잘못 :(?


우리의 자매 사이트의주의 unix.stackexchange.com 유닉스와 리눅스 모두에서 질문 (모든 flavo (U) RS)에 응답
Mawg

답변:


1

대신 이것을 시도하십시오 :

find -name '*.txt' -print0 | head -z -1 | xargs -0 -I '{}' mv '{}' test.txt

무엇이 잘못되었고 왜 이것이 작동해야 하는가 :

  • 어쨌든 찾아야 할 모든 것을 전달하면 find를 사용할 필요가 없습니다.
  • 파이프 라인의 항목에 널 구분 기호를 사용하는 경우 파이프 라인의 모든 항목에 널 구분 기호를 사용해야합니다.
  • xargs를 사용 *.txt하여 찾은 파일 이름을 대체하지 않았습니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.