[問題] shellscript檔案名稱有空格如何篩選跟tar
不好意思又是我...
但我已經找遍各種方法都無解 只好再來麻煩各位(可能方向錯誤)
是這樣的我在我的資料夾/NAS/Ray內放了以下檔案
20210615 - A.xls
20210720 - A.xls
20210725 - A.xls
20210803 - A.xls
而我想要在每個月1號將上個月的資料全部打包命名為年+月
像是8/1 將檔名開頭為202107的檔案打包命名為2107.tar.gz
我的寫法:
last_month=$(date -d "$date +%Y%m)01 last month" +%Y%m)
file=$(ls $last_month*)
cd /NAS/Ray/
tar -zcvPf /NAS/Ray/2107.tar.gz $file
執行後顯示錯誤訊息
ls: cannot access '202107*': no such file or dierctory
但如果我直接到該路徑輸入
ls 202107*
是會正常顯示出開頭有202107的檔案
剛剛亂try(印象中是將ls改用find去找檔案)
有成功讀到檔案
但tar的時候就有問題了 錯誤訊息變成
tar: ./20210701: cannot stat:no such file or directory
tar: -: cannot stat:no such file or directory
tar: A.xls: cannot stat:no such file or directory
看起來是因為有空格的關係 變成三個檔案
這部分file變數該怎麼寫才能篩選月份又能忽略空格呢
另外還有遇到一個問題
如果要刪除目錄 使用rm -rf
rm -rf /NAS/Ray/123
如果Ray目錄下如果沒有123 會把目錄Ray刪掉
這部分怎麼解決呢
有查到使用-r會遞迴刪除 但刪目錄又必須加上-r
這部分是否只能先cd過去 再rm -rf 123呢
以上問題在麻煩大家了 糾結好久好痛苦QQ 拜託大家了
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.75.6.134 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1628723994.A.361.html
※ 編輯: raynoz (211.75.6.134 臺灣), 08/12/2021 07:20:18
※ 編輯: raynoz (211.75.6.134 臺灣), 08/12/2021 07:30:09
→
08/12 08:22,
3年前
, 1F
08/12 08:22, 1F
→
08/12 08:22,
3年前
, 2F
08/12 08:22, 2F
推
08/12 10:28,
3年前
, 3F
08/12 10:28, 3F
→
08/12 10:29,
3年前
, 4F
08/12 10:29, 4F
推
08/12 10:32,
3年前
, 5F
08/12 10:32, 5F
推
08/12 14:48,
3年前
, 6F
08/12 14:48, 6F
推
08/12 14:50,
3年前
, 7F
08/12 14:50, 7F
推
08/12 21:23,
3年前
, 8F
08/12 21:23, 8F
→
08/12 21:23,
3年前
, 9F
08/12 21:23, 9F
→
08/12 21:30,
3年前
, 10F
08/12 21:30, 10F
推
08/13 01:02,
3年前
, 11F
08/13 01:02, 11F
→
08/13 01:03,
3年前
, 12F
08/13 01:03, 12F
→
08/13 01:04,
3年前
, 13F
08/13 01:04, 13F
→
08/13 01:06,
3年前
, 14F
08/13 01:06, 14F
→
08/13 07:39,
3年前
, 15F
08/13 07:39, 15F
→
08/13 07:41,
3年前
, 16F
08/13 07:41, 16F
→
08/13 07:42,
3年前
, 17F
08/13 07:42, 17F
→
08/13 07:42,
3年前
, 18F
08/13 07:42, 18F
→
08/13 07:43,
3年前
, 19F
08/13 07:43, 19F
→
08/13 08:00,
3年前
, 20F
08/13 08:00, 20F
→
08/13 08:01,
3年前
, 21F
08/13 08:01, 21F
Linux 近期熱門文章
23
129
PTT數位生活區 即時熱門文章