特殊文字を含むファイルを削除したり名前を変更したりする方法。コマンドラインで「-x」を使用する

特殊文字を含むファイルを削除したり名前を変更したりする方法。コマンドラインで「-x」を使用する

重複の可能性:
"--"(二重ダッシュ) とはどういう意味ですか?

誰でも次のことを説明できますか?

「-xyz」というファイルがあります。コマンドラインを使用してファイルを削除または移動しようとすると、移動できません。私は次のことを試しました:

[rahul@srv100 ~]# ls -lrt  -- "-xyz"
-rw-r--r-- 1 rahul rahul 0 Dec 19 08:06 -xyz
[rahul@srv100 ~]# mv "-xyz" xyz
mv: invalid option -- x
Try `mv --help' for more information.
[rahul@srv100 ~]# mv \-xyz xyz
mv: invalid option -- x
Try `mv --help' for more information.
[rahul@srv100 ~]# mv -\xyz xyz
mv: invalid option -- x
Try `mv --help' for more information.
[rahul@srv100 ~]# mv '-xyz' xyz
mv: invalid option -- x
Try `mv --help' for more information.

最後に、Winscpを使用してファイル名を変更し、いくつかの方法を試した後、オプションを取得して動作します。

mv -- '-xyz' xyz

「--」が役に立つことを願っています。次のファイル/ディレクトリを作成しました。

mkdir -- --abc
touch -- -xyz

だから私の質問はbashの「--」とは何ですか?説明してください。

ベストアンサー1

他の人がすでに述べたように、--オプションと引数を区別するために使用されます。プログラムを実行して引数を指定した場合、プログラムは指定された引数をコマンドラインオプションとして解釈する必要があるのか​​、引数として解釈するのかを区別することはできません。これがオプションのプレフィックス-/ --orがWindowsに導入された理由です/。つまり-rf--helpまたは/?

このような接頭辞または解釈可能な別の特殊名で始まるファイルがある可能性があるため、--コマンドラインオプションを通常の引数から分離する機能が導入されました。つまり、後続の各引数は--コマンドラインオプションとして扱われませんが、パラメータとしてのみ使用されます。getopt (1)は、区切り文字サポートなどのパラメータ解析のための標準ソリューションです。--これは、それを使用するすべてのプログラムがgetopt自動的に区切り--文字をサポートすることを意味します。

特殊文字で始まるファイルを処理する場合は、特殊文字で始まらないので、ファイルの前に追加することも-できます。したがって、コマンドラインオプションとして解釈されません。たとえば、次のようになります。./-mkdir ./--abc

おすすめ記事