Linuxのmv複数ファイルとMacのmv複数ファイル

Linuxのmv複数ファイルとMacのmv複数ファイル

Linuxで複数のファイルを移動するには、次のものを使用できます。

mv -t DESTINATION file1 file2

macOSでは

mv file1 file2 DESTINATION

なぜそのような違いがありますか?これは Bash 対 Zsh の問題ですか、それとも古い構文と新しい構文の問題ですか、それとも何ですか?

答え1

最初の例では、次mvを使用します。GNU拡張 -t( --target-directory) そしてそこに特別な理由

2番目の例は標準POSIXmvこれはソリューションであり、すべてのプラットフォーム製品(GNUを使用して実装された製品を含む)で使用できますmv

2番目のバージョンを使用していて、ターゲットがすでに存在するディレクトリであることを確認するには、サフィックスに/mv(末尾がない場合は、/ターゲットが存在しない場合、またはディレクトリでない場合mvにのみ名前変更の役割を果たします。)

答え2

いいえ、これはシェル(bash対zsh)とは何の関係もありませんmv。 Linuxシステムでは。牛に似た一種の栄養mvLinuxシステムはしばしばGNUユーティリティを使用して構築されるためです。一方、MacOSではBSD代わりにユーティリティ。これは、多くの共通コマンドラインユーティリティが同じことを行いますが、異なる調整を使用するように設計された別の実装であるため、異なる動作をします。

したがって、古いものと新しいものではなく、同じことをするように設計されていますが、他のデザインを選択した他の人が書いたツールにすぎません。車の場合でも同様です。すべての車にステアリング、ブレーキ、加速などの方法があります。ただし、自動車メーカーごとに異なる要素(エアコン、ラジオ、熱線シートなど)を追加し、これらの要素も異なる方法で設計されています。 GNUとBSDがmvまだ車であるかのように、どちらもまだ車ですが、基本的なmv機能を超えて独自の特徴と特異性を持っています。


この規格はmv file1 file2 dir/LinuxmvとMacに適用されます。どの実装を使用しているかわからない場合は、構文を使用するとmv file1 file2 dir/すべてmv

関連情報