ファイル名に特殊文字を使用する

ファイル名に特殊文字を使用する

というファイルを作成する必要があります。*'test'*

書くならtouch \'test\'

lsプログラム'test'

しかし、私が書くならtouch \*\'test\'\*

ls今見せて*'\''test'\''*

どのようなヒントがありますか?誰かが私が間違っていることを説明できますか?

私のオペレーティングシステムはUbuntu 20.04です。

ベストアンサー1

問題はGNUlsです役に立つあいまいでない引用形式で奇妙なファイル名を出力します。これは、シェルに入力して同じ名前を取得する方法と似ています。

時には役に立ちますが、時には混乱だけを加重させるだけです。この機能をオフにするには、制御環境変数を設定します。

export QUOTING_STYLE=literal
ls

または、対応するコマンドラインフラグを使用してください。

ls --quoting-style=literal

またはより短いですls -N

以下を引用して、奇妙な文字を含むファイル名を作成できます。

touch "*'test'*"                       # « *'test'* »

シェルがコマンドラインを実行する前に引用符付き文字列を処理するので、さまざまな種類の引用符付きの文字列が隣接する可能性があることに注意してください(ここでは、単一引用符で囲まれた文字列と二重引用符で囲まれた文字列があります)。

touch 'Quotes "here" at'" 5 o'clock"    # « Quotes "here" at 5 o'clock »
#     '←-first-string-→'"←-second-→"

あなたの例:

touch \'test\'                         # « 'test' »
touch \*\'test\'\*                     # « *'test'* »

ls -1 --quoting-style=literal          # List files one per line
  *'test'*
  'test'

おすすめ記事