フォルダ名に角かっこ/丸括弧を含むシェルスクリプト

フォルダ名に角かっこ/丸括弧を含むシェルスクリプト

バックアップから復元したい音楽ライブラリがあります。

元のソースライブラリはQNAP NASにあり、問題なくCentOSシステムにコピーしました。

これでファイルを再コピーしようとすると、QNAP NASは隠しディレクトリ(「.@__thumbs」と呼ばれる)を作成します。

NASにデータを復元する際に、これらの隠しフォルダを使用してfind -name .@__thumbs > results.sh削除したいと思います。

私が経験している問題は、ミュージックアルバムフォルダに年を表示するかっこや角かっこがある場合があるため、削除しようとすると(またはrm -rf "some album (2009)/.@__thumbs"rm -rf "some other album [2010]/.@__thumbs"、bashでエラーが発生することです。

./results.sh: command substitution: line 2: unexpected EOF while looking for matching `''
./results.sh: command substitution: line 3: syntax error: unexpected end of file
./results.sh: command substitution: line 19: syntax error near unexpected token `('

それでは、Bashシェルスクリプト環境でこの問題をどのように解決しますか?

(私はプログラマーや開発者ではありませんので、愚かな質問をご了承ください。)

助けてくれてありがとう。

ありがとうございます。

編集する

@Kusalanandaこの質問を閉じたので、元の質問を編集する必要があります。

  1. 答え:「質問にこれらのエラーを生成する実際のコマンドを追加することを検討してください。コマンドがなければ、あなたの質問は明確ではなく、私たちは推測するだけです。」

私はやった。

私の元の質問をもう一度読むと、最も注目すべき点は次のとおりです。 "私が経験している問題は、音楽アルバムフォルダに年を表すかっこや角かっこがある場合があるため、削除しようとすると次のようになります。rm -rf "some album (2009)/.@__thumbs"またはrm -rf "some other album [2010]/.@__thumbs"、bashでエラーが発生します。 :"

  1. 返信:重複した質問です。 「正確なファイル名」を含む投稿を具体的に検索してみましたが、ここでやりたいことについては明確な質問(または回答)はありません。

人々は繰り返し質問をするのでいいえあなたは何がわかりますかあなたわかります。したがって、私はあなたが要求した方法でこの質問をする方法を知らないので、そのクエリを入力しません。

あなたが提供したリンクから2つの重複質問を読んだ後、質問全体を読んだ後両方スレッドではまだ@casが提供した答えをまとめることはできません。

たとえば、現在はコマンドについて文句を言うので(CentOSで使用しているにもかかわらず)、GNUではないソリューションを使用する必要があります。find -name @.thumb -deleteしたがって、そのディレクトリが空ではないと言います。この問題を解決するには、GNU以外のソリューションを使用してください。

繰り返しますが、2つのリンクされた重複質問を読んだ後でも、いいえ@casが私の質問に答えを提供できたのと同じ方法でこれを組み合わせます。

開発者と定期的なシステム管理者はそれを1つに統合することもできます。他の人にとっては必ずしもそうではありません。 (それとも私が愚かなことかもしれません。それを一つにまとめて把握することはできません。 )

ベストアンサー1

おすすめ記事