다음 스크립트에서 루프에서 디렉토리를 어떻게 제외합니까? 모든 파일이 동일한 레벨에 존재하는이 디렉토리를 가리키는 심볼릭 링크 이므로이 작업을 수행하고 싶습니다. 그래서 추가하고 싶지 않습니다.
cd /var/www
for dir in */
do
base=$(basename "$dir")
tar -czfh "${base}.tar.gz" "$dir"
done
답변
다음 continue
과 같은 문장을 추가 할 수 있습니다 .
cd /var/www
for dir in */
do
if [ "$dir" == "foo" ] ; then
continue;
fi
base=$(basename "$dir")
tar -czfh "${base}.tar.gz" "$dir"
done
또는 당신은 find
명령으로 그것을 할 수 있습니다 :
find /var/www -maxdepth 1 -type d \( -name foo \) -prune -o -print -exec bash -c "tar -czfh \`basename {}\`.tar.gz {}" \;
답변
extglob
아직 활성화하지 않은 경우 활성화해야합니다 ( shopt -s extglob
) :
for dir in !(dirname)/
...