上記のコマンドを理解しようとしています。
sudo /bin/ls %s %file_path
それは何を
%
するのでしょうか? 何らかの代替メカニズムでしょうか?何
sudo /bin/ls
をするのですか?
答え1
bashスクリプトの%はアンカーを意味しますが、プログラムによってその役割が異なる場合があります。パラメータの一部または別の。 のためにls何もしません。sudoの場合はいくつかのことを行いますが、このコンテキストではそうではありません。私には意味がわかりません...このコマンドは単に(rootとして)実行しようとするだけです。記録によると、実行する必要はほとんどありません。lsルートとして、ファイル名が通常のユーザーによってアクセスできない場所はほとんどありません。ls) はディレクトリ %s と %foo でファイルを検索し、「ls は %s にアクセスできません: そのようなファイルまたはディレクトリはありません」という結果を返します。%foo の場合も同様です。(ディレクトリ %s は、自分で作成しない限り、存在できません)
スクリプトでは、以下の操作を行います。
からhttp://wiki.bash-hackers.org/syntax/pe:
アンカーさらに、式を「アンカー」することもできます。# (ハッシュマーク) は、式が文字列の先頭部分と一致することを示し、% (パーセント記号) は末尾部分と一致することを示します。
MYSTRING=xxxxxxxxxx
echo ${MYSTRING/#x/y} # RESULT: yxxxxxxxxx
echo ${MYSTRING/%x/y} # RESULT: xxxxxxxxxy
(コードが行っていることは、最初または最後の「x」を「y」と交換することです)