2016-11-23 35 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並檢查它是否有效。