使用带有转义通配符的rm -rf清除bash中的目录

时间:2016-11-23 10:52:37

标签: bash

我正试图用这个脚本清理一些目录。

它回显"removing from"行,但退出时不删除文件。

我根据需要转义了通配符,以便扩展它。

我从sudo shell会话中运行它。

我也没有看到任何错误。

    #!/bin/bash

    declare -a paths=(      "OpsCenter/rollups300"
                            "OpsCenter/rollups60"
                            "table_a"
                            "table_b"
                            "table_c"
                            "table_d")

    for del_path in "${paths[@]}"
    do
            full_path="/var/lib/cassandra/data/$del_path/"
            echo "removing from" $full_path
            rm -rf "$full_path"/*
    done

修改

更改为rm -rv "$full_path"/*后,我得到输出

rm: cannot remove `/var/lib/cassandra/data/table_a/*': No such file or directory 

我添加了

ls -all "$full_path"\*

到循环,ls命令的输出也是

cannot access `/var/lib/cassandra/data/table_a/*': No such file or directory 

虽然从命令行运行时具有相同路径的ls命令确实显示那里有文件。

    ls -all /var/lib/cassandra/data/table_a/*

    /var/lib/cassandra/data/table_a/draft_msg:
    total 8
    drwxr-xr-x. 2 cassandra cassandra 4096 Sep 11 14:02 .
    drwxr-xr-x. 5 cassandra cassandra 4096 Sep 11 14:02 ..

    /var/lib/cassandra/data/table_a/threat_sub_type:
    total 48
    drwxr-xr-x. 4 cassandra cassandra 4096 Nov  3 01:01 .
    drwxr-xr-x. 5 cassandra cassandra 4096 Sep 11 14:02 ..
    drwxr-xr-x. 2 cassandra cassandra 4096 Nov  3 01:01 backups
    -rw-r--r--. 3 cassandra cassandra   43 Nov  3 01:01 table_a-threat_sub_type-jb-3-CompressionInfo.db
    -rw-r--r--. 3 cassandra cassandra  539 Nov  3 01:01 table_a-threat_sub_type-jb-3-Data.db
    -rw-r--r--. 3 cassandra cassandra   16 Nov  3 01:01 table_a-threat_sub_type-jb-3-Filter.db
    -rw-r--r--. 3 cassandra cassandra   35 Nov  3 01:01 table_a-threat_sub_type-jb-3-Index.db
    -rw-r--r--. 3 cassandra cassandra 4418 Nov  3 01:01 table_a-threat_sub_type-jb-3-Statistics.db
    -rw-r--r--. 3 cassandra cassandra  131 Nov  3 01:01 table_a-threat_sub_type-jb-3-Summary.db
    -rw-r--r--. 3 cassandra cassandra   79 Nov  3 01:01 table_a-threat_sub_type-jb-3-TOC.txt
    drwxr-xr-x. 5 cassandra cassandra 4096 Nov 15 09:01 snapshots

    /var/lib/cassandra/data/table_a/threat_type:
    total 48
    drwxr-xr-x. 4 cassandra cassandra 4096 Nov  3 01:01 .
    drwxr-xr-x. 5 cassandra cassandra 4096 Sep 11 14:02 ..
    drwxr-xr-x. 2 cassandra cassandra 4096 Nov  3 01:01 backups
    -rw-r--r--. 3 cassandra cassandra   43 Nov  3 01:01 table_a-threat_type-jb-3-CompressionInfo.db
    -rw-r--r--. 3 cassandra cassandra  739 Nov  3 01:01 table_a-threat_type-jb-3-Data.db
    -rw-r--r--. 3 cassandra cassandra   16 Nov  3 01:01 table_a-threat_type-jb-3-Filter.db
    -rw-r--r--. 3 cassandra cassandra   35 Nov  3 01:01 table_a-threat_type-jb-3-Index.db
    -rw-r--r--. 3 cassandra cassandra 4408 Nov  3 01:01 table_a-threat_type-jb-3-Statistics.db
    -rw-r--r--. 3 cassandra cassandra  131 Nov  3 01:01 table_a-threat_type-jb-3-Summary.db
    -rw-r--r--. 3 cassandra cassandra   79 Nov  3 01:01 table_a-threat_type-jb-3-TOC.txt
    drwxr-xr-x. 6 cassandra cassandra 4096 Nov 15 09:01 snapshots

1 个答案:

答案 0 :(得分:0)

您的bash会话似乎已禁用路径名扩展,set -f

您可以在脚本中set +f并检查它是否有效。