前提・実現したいこと
フォルダ・ファイル名を特定の文字へ一括置換するbashをMacOSで作成したいと考えています
フォルダ名も同時に変換したいのですが下に書いてあるエラーが発生してしまい変換できません
対処法をお教えください
rename
コマンドをインストールしています
https://qiita.com/shuhei/items/cf1ddf373d1f83d5d667
例:理想的な動作
- 変換前
. ├── before_xxx.txt ├── xxx_before.md └── hogehoge ├── before.txt ├── hogehoge.txt └── xxx_before ├── hogehoge.txt └── before.md
- 変換後
. ├── after_xxx.txt ├── xxx_after.md └── hogehoge ├── after.txt ├── hogehoge.txt └── xxx_after ├── hogehoge.txt └── after.md
試作コード
replace.sh
dir=$1 before=$2 after=$3 find $dir -type f -name "*${before}*" -print0 | xargs -0 rename -s $before $after
実行結果
エラー
Can't rename './hogehoge/xxx_before/before.md' to './hogehoge/xxx_after/before.md': No such file or directory
フォルダ名がxxx_after
に変換がかかることでファイルが見つけられない?
結果
replace.sh . before after
. ├── after_xxx.txt ├── xxx_after.md └── hogehoge ├── after.txt ├── hogehoge.txt └── xxx_before ├── hogehoge.txt └── before.md
xxx_before
が変換されておらずその中に含まれるbefore.md
も変換されていません
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/28 05:49