2016-11-23 118 views
2

我正在尝试使用此脚本清理一些dir。在bash中使用rm -rf清理目录中的转义通配符

它回应"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 
+2

用'rm -rv'替换'rm -rf'来查看输出。 – Cyrus

+0

你能检查'rm'命令的返回吗?例如添加后rm [$? -ne 0] && echo“error rm command” –

+0

@RuslanOsmanov我列出了输出。 – alex440

回答

0

它看起来像你的bash会话已禁用路径名扩展,set -f

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