我希望我的
rm -rf
忽略 .
和 ..
,这样它就不会返回错误
#!/bin/bash
#put directories older than 4 days in a variable
LOC="/home/efetzer/testDelete"
declare -a DIRS=$(find ${LOC} -type d -mtime +2) #DIRS is an array of folder names
echo ${DIRS[@]}
# Cleanup the directorties
for i in ${DIRS[@]}
do
echo "Cleaning: $i"
rm -rf $i/{*,.*}
rmdir $i
done
如何让之前的
rm -rf
命令忽略 .
和 ..
?
谢谢!
如果您对除
.
和..
之外的所有内容都感兴趣,您可以使用extglob
:
shopt -s extglob
for i in "${DIRS[@]}" ; do
echo "Cleaning: $i"
rm -rf "$i"/!(.|..) # Everything but . and ..
rmdir "$i"
done
请注意,我添加了双引号以使脚本即使对于包含空格的路径也能工作。