공백을 삽입하지 않고 Xargs 문자열 보간


5

반복하고 싶다

touch ../template/filename

어디에서 filename오는가 find. 내가 원하는 xargs적용하는 touch작업을,하지만 난 그나마 그것을 할 공백을 삽입 그것은 일반적으로 파생하는하는 것처럼 :

touch ../template/ filename

불완전한 명령은 다음과 같습니다. 어떻게 완성합니까?

find *.html | xargs touch ../template/WHAT-NOW

답변:


9
find -name "*.html" | xargs -d"\n" -I"{}" touch ../template/{}

find -name "*.html" -exec touch ../template/{} \;

그 주 find *.html와일드 카드 확장되기 때문에, 잘못 전에 명령 실행.


find 명령은 ./photos_each.html실제로 의미가있을 때 알려줍니다 photos_each.html. 나는 단순히 파일 이름을 원한다
Jesvin Jose

1
@ aitchnyu : 여기에 해당합니다. 모두 ../template/photos_each.html../template/./photos_each.html작동합니다.
grawity

4

쉘 루프로 작성하기가 더 쉽습니다. 예를 들어, C 쉘에서 다음을 작성할 수 있습니다.

foreach i (`find -name "*.html"`)
   touch ../template/$i
end

그리고 여기 bash에 있습니다.

for i in `find -name "*.html"`
do
   touch ../template/$i
done

그리고 Hamilton C 쉘 (전체 공개 : 저자 임)에서 트리 워크에 "..."와일드 카드 를 추가하여 다음 과 같이 작성할 수 있습니다.

foreach i (.../*.html)
   touch ../template/$i
end

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.