小编sto*_*obi的帖子

删除超过X天的目录

所以我在这里查看了有关删除超过14天的目录的每个脚本.我编写的脚本使用文件但由于某种原因它不删除目录.所以这是我的脚本.

#!/bin/bash
find /TBD/* -mtim +1 | xargs rm -rf
Run Code Online (Sandbox Code Playgroud)

所以这段代码成功删除了TBD中的FILES,但它留下了两个目录.我检查了它们的时间戳,根据时间戳,它们是自上次修改后至少2天.特别是12月16日16:10所以我无法弄清楚这一点.我运行的crontab每分钟运行一次并记录日志,它只显示日志.

+ /scripts/deletebackups.sh: :2:BASH_XTRACEFD=3xargs rm -rf
+ /scripts/deletebackups.sh: :2: BASH_XTRACEFD=3find /TBD/contents TBD/contents -mtime +1
Run Code Online (Sandbox Code Playgroud)

我使用内容,因为内容实际上是我们的pxe服务器中的人名.我检查了这两个目录中的每个文件和文件夹,它们的时间戳和它们应该是的父目录相同,但它仍然没有删除.

这可能是权限吗?我使用sudo nano deletebackups.sh编写了脚本当我在最左边的TBD下键入ls时,它显示了两个不会删除的目录中的drwxr-xr-x 3 hscadministrator root 4096 DEC 16 16:10.我对这些字母的含义并不过分熟悉.

我已经尝试过的这段代码的其他迭代

find /TBD/* -mtime +1 rm -r {} \;
Run Code Online (Sandbox Code Playgroud)

linux directory bash rm crontab

6
推荐指数
2
解决办法
2万
查看次数

使用for循环seq分配动态bash变量名

所以我想做点什么,不确定是否可能.我有以下代码:

for i in {0..5}; do
    if [[ -f ./user$i ]]; then
        group$i=$(grep -w "group" ./user0|awk '{print $2}'|perl -lape 's/\s+//sg')
Run Code Online (Sandbox Code Playgroud)

我想要做的是为每个变量名称为{0..5}所以group1 group2 group3 group4的每个实例分配一个唯一变量.然后我将./user0更改为./user$i并根据我的序列创建一个动态变量列表.这可能吗?尝试执行此操作时出现以下错误,我不确定bash不喜欢我实际做了什么.

test.sh:第16行:group0 = j:找不到命令

linux bash ubuntu

4
推荐指数
1
解决办法
2519
查看次数

标签 统计

bash ×2

linux ×2

crontab ×1

directory ×1

rm ×1

ubuntu ×1