繁体   English   中英

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

[英]How to remove all subdirectories? (unix shell scripting)

我有一个名为“cdrs-roaming”的目录。 每天我都会收到一个或多个.zip 文件并用这个解压缩它们:

#!/bin/bash
for i in *.zip
do
    j=${i//\.zip/}
    mkdir $j
    cd $j
    unzip  ../$i
    cd -
done 

然后我有例如:“example1.zip”和“example1”; “example2.zip”和“example2”

我正在删除所有 zip 文件(在本例中为:“example1.zip”和“example2.zip”):

#! /bin/bash
find /dados/cdrs-roaming/*.zip -mtime +1 -exec rm {} \;

所以我想删除目录(或文件夹 - 我真的不知道区别)“example1”和“example2”。 我试过这个:

#! /bin/bash
find /dados/cdrs-roaming/ -type d -mtime +1 -exec rm -rf {} \;

但它也删除了“cdrs-roaming”。 我也尝试过使用:

find /cdrs-roaming/ -type d -mtime +1 -exec rm -rf {} \;

但它返回: find: '/cdrs-roaming/': No such file or directory

有什么想法吗? 我只需要删除“cdrs-roaming”中的目录,但我无法删除其中的任何其他内容(my.sh 文件在其中)

既然你用的是bash,怎么样

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

最后的斜线确保 bash 仅将模式扩展到目录。

使用-mindepth 1选项:

find /dados/cdrs-roaming/ -mindepth 1 -type d -mtime +1 -exec rm -rf {} \;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM