コマンドに奇妙なパスパラメータを渡す方法

コマンドに奇妙なパスパラメータを渡す方法

stdinを介してコマンドを送信していますが、どのようにパスパラメータを安全な方法で送信できますか?

例えば

stat /some strange/p"at\nh'/

パスが奇妙で失敗しました。パスを変数や他の方法で保存して操作できますか?それとも、これらの奇妙なパスが送信される前にこれを回避する簡単な方法はありますか?

編集する: より明確に言えば、奇妙なパスに有効な posix ファイル名文字を含めることができます。以下に作成された奇妙なディレクトリを処理する例は次のとおりです。

mkdir """
'''\n
"

ベストアンサー1

難しい部分は、この奇妙なパスを定義することです。あなたがそれを思い出に正確に持っていれば、それを持って仕事をすることができます。ここにあるドキュメントを使ってそれをインポートし、some strange/p"at\nh'/ローカルで動作するように定義します(/最初から始める必要はありません)。

$ p="$(cat<<EOF
some strange/p"at\nh'/
EOF
)"
$ echo "$p"
some strange/p"at\nh'/
$ mkdir -p -- "$p"
tomasz@tomasz-laptop-f:~/x$ stat -- "$p"
  File: some strange/p"at\nh'/
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: fe05h/65029d    Inode: 4983105     Links: 2
Access: (0755/drwxr-xr-x)  Uid: ( 1000/  tomasz)   Gid: ( 1000/  tomasz)
Access: 2019-03-06 08:50:05.116674683 +0100
Modify: 2019-03-06 08:50:05.116674683 +0100
Change: 2019-03-06 08:50:05.116674683 +0100
 Birth: -

おすすめ記事