Bash 如何删除所有子目录?(unix shell脚本)

Bash 如何删除所有子目录?(unix shell脚本),bash,shell,unix,Bash,Shell,Unix,我有一个叫cdrs漫游的目录。每天我都会收到一个或多个.zip文件,并使用以下命令解压: #!/bin/bash for i in *.zip do j=${i//\.zip/} mkdir $j cd $j unzip ../$i cd - done #! /bin/bash find /dados/cdrs-roaming/*.zip -mtime +1 -exec rm {} \; 然后我举个例子: 示例1.zip和示例1;示例2.zip和示

我有一个叫cdrs漫游的目录。每天我都会收到一个或多个.zip文件,并使用以下命令解压:

#!/bin/bash
for i in *.zip
do
    j=${i//\.zip/}
    mkdir $j
    cd $j
    unzip  ../$i
    cd -
done 
#! /bin/bash
find /dados/cdrs-roaming/*.zip -mtime +1 -exec rm {} \;
然后我举个例子: 示例1.zip和示例1;示例2.zip和示例2

我将删除本例中的所有zip文件:example1.zip和example2.zip,其中包含:

#!/bin/bash
for i in *.zip
do
    j=${i//\.zip/}
    mkdir $j
    cd $j
    unzip  ../$i
    cd -
done 
#! /bin/bash
find /dados/cdrs-roaming/*.zip -mtime +1 -exec rm {} \;
所以我想删除目录或文件夹-我真的不知道示例1和示例2的区别。我试过这个:

#! /bin/bash
find /dados/cdrs-roaming/ -type d -mtime +1 -exec rm -rf {} \;
但它也删除了CDR漫游。我还尝试使用:

find /cdrs-roaming/ -type d -mtime +1 -exec rm -rf {} \;
但它返回:find:“/cdrs roaming/”:没有这样的文件或目录

有没有这样做的想法?我只需要删除cdrs漫游中的目录,但无法删除其中的任何其他内容。sh文件在其中

使用-mindepth 1选项:

使用-mindepth 1选项:


既然您使用的是bash,那么

rm -rf /dados/cdrs-roaming/*/

最后一个斜杠确保bash只将模式扩展到目录。

既然您使用的是bash,那么

rm -rf /dados/cdrs-roaming/*/

最后一个斜杠确保bash只将模式扩展到目录。

目录和文件夹之间的唯一区别在于前者是传统的UNIX术语,后者是传统的Windows术语。目录和文件夹之间的唯一区别在于前者是传统的UNIX术语,后者是传统的Windows术语后者是传统的Windows术语。谢谢!你帮了很多忙。我已将-mtime+1更改为-mmin+1,效果良好。第一次从1天起没有任何目录谢谢!你帮了很多忙。我已将-mtime+1更改为-mmin+1,效果良好。第一次从1天起没有任何目录非常感谢!这样我就可以安全地删除所有目录和子目录了“安全”是一个相对的术语。我总是感到不寒而栗,如果我做一个rm-rf…不仅是bash,这应该在所有POSIX shell中都能工作。再见,非常感谢!这样我就可以安全地删除所有目录和子目录了“安全”是一个相对的术语。我总是感到不寒而栗,如果我做一个rm-rf…不仅是bash,这应该在所有POSIX shell中都能工作。看见