누구든지 스크립트에서 이 단계를 사용하는 방법을 제안할 수 있습니까? (첫 번째 명령의 출력을 가져와야 하고 세 명령 모두에 대해 두 번째 명령을 사용해야 합니다.)
[aaa@build]$ find . -name src
./Port/bit/WE-IN/src
./MI/M-Scripts/Msg/src
./MI/M-Scripts/TT/src
[aaa@build]$ cd ./Port/bit/WE-IN/src
답변1
찾고 있는 명령은 xargs
일반적으로 다음과 같이 사용합니다.
find . -name src -print0 | xargs -I{} -0 echo {}
또는 명시적인 질문의 경우:
find . -name src -print0 | xargs -I{} -0 cd {}
답변2
당신이 할 수 있는 일은 쉘 함수를 선언하고 각 디렉토리에 대한 함수를 호출하는 while 루프에 find의 각 결과를 전달하는 것입니다.
#!/bin/bash
function f
{
echo "THIS IS " $(pwd)
ls
}
find . -maxdepth 1 -type d -name "bin" -printf "%P\n" | while read DIRNAME;
do
cd $DIRNAME
f
done
실행 예시는 다음과 같습니다.
$ ./findAndFunction.sh
THIS IS /home/xieerqi/bin
autostart-script.sh c java perl python README.md sergrep shell