다음 스크립트에서 루프에서 디렉터리를 어떻게 제외합니까? 모든 파일이 동일한 레벨에 존재하는 이 디렉토리에 대한 심볼릭 링크이기 때문에 이 작업을 수행하고 싶으므로 추가하고 싶지 않습니다.
cd /var/www
for dir in */
do
base=$(basename "$dir")
tar -czfh "${base}.tar.gz" "$dir"
done
답변1
다음과 같은 문을 추가할 수 있습니다 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 {}" \;
답변2
extglob
이 기능이 아직 활성화되지 않은 경우( ) 활성화해야 합니다 shopt -s extglob
.
for dir in !(dirname)/
...