Windows.cmdのrmおよびmvに相当


93

シェルスクリプトに次のものがあります。次の行をwindowscmdファイルに変換したいと思います。windowscmdファイルの「rm」と「mv」に相当するものについて誰でも入力できますか。

rm -f ${BUILD_ID}/${BUILD_ASIC}*rampatch*
mv ${BUILD_ID}/${BUILD_ASIC}*rampatch* ${BUILD_ID}/emul/

9
delおよびmove
–Blorgbeardは2013

回答:


141

moveWindowsのmvコマンドはLinuxのコマンドと同等です

delWindowsのrmコマンドはLinuxのコマンドと同等です


23
これは単純化しすぎです。動作と機能はまったく異なります。
javadba 2016

動作と機能をほぼ完全に一致させるには、@ Daveの提案を使用してLinuxツールのWin32ポートを使用します。提案されたGnuWin32も気に入っていますが、通常binCygwinまたはGit bash / git forWindowsからWindowsにディレクトリを追加するだけPATHです。純粋なCMDを使用したい場合は、以下の私の回答で共有した提案を使用して、より近い動作と機能を取得できます。
bballdave025

34

moveとはdel確かに同等ですが、機能の観点からは、ひどく同等ではありません。たとえば、moveコマンドを使用してファイルとフォルダーの両方を(ワイルドカードシナリオで)移動することはできません。そして、同じことがdel。にも当てはまります。

私の見解では、LinuxツールのWin32ポートを使用することをお勧めします。その中で、私が見つけた最高のコレクションはここにあります

mvrmにしているのcoreutilsパッケージ化し、彼らは素晴らしく働きます!


14

コマンドの違いの詳細については、以下の「違い詳細」セクションを参照してください。

LeMoDa.netのウェブサイト1アーカイブ)、特にWindowsとUnixコマンドライン同等のページ(アーカイブ)、私は、次のい2次の編集では、より良い/より完全な表があります。

Windows command     Unix command
rmdir               rmdir
rmdir /s            rm -r
move                mv

@Daveと@javadbaから、コマンドがどれほど同等であるか、つまり「動作と機能」が非常に類似しているか「ひどく同等ではない」かどうかを比較する方法を聞いてみたいと思います。

私が見つけたのは、それを使用してディレクトリとその構成ファイルおよびサブディレクトリを再帰的に削除しようとしたときです。

(Windows cmd)>rmdir /s C:\my\dirwithsubdirs\

標準のWindows-knows-better-than-you-do-are-you-sureメッセージとプロンプトが表示されました

dirwithsubdirs, Are you sure (Y/N)?

入力するYと、トップディレクトリとその構成ファイルおよびサブディレクトリが消えてしまいました。


編集

この答えを見つけた後、私はこれを振り返っています。各コマンドを再試行し、テーブルを少し変更しました。

Windows command     Unix command
rmdir               rmdir
rmdir /s /q         rm -r
rmdir /s /q         rm -rf
rmdir /s            rm -ri
move                mv
del <file>          rm <file>

同等のものが必要な場合

rm -rf

あなたが使用することができます

rmdir /s /q

または、私が提供した回答の著者が説明したように、

しかし、コマンドに確認メッセージを抑制するオプションがなかった当時に使用されていた、別の「古い学校」の方法があります。単にECHO必要な応答を返し、値をコマンドにパイプします。

echo y | rmdir /s


違いについての詳細

Windows CMDとCygwin(とbash)を使用して各コマンドをテストしました。

各テストの前に、次の設定を行いました。

Windows CMD

>mkdir this_directory
>echo some text stuff > this_directory/some.txt
>mkdir this_empty_directory

Cygwin bash

$ mkdir this_directory
$ echo "some text stuff" > this_directory/some.txt
$ mkdir this_empty_directory

その結果、両方のファイル構造は次のようになりました。

base
|-- this_directory
|   `-- some.txt
`-- this_empty_directory

結果は次のとおりです。それぞれをCMDまたはbash;としてマークしないことに注意してください。CMDの>前にbashがあり$ 、前にがあります。

RMDIR

>rmdir this_directory
The directory is not empty.

>tree /a /f .
Folder PATH listing for volume Windows
Volume serial number is ████████ ████:████
base
+---this_directory
|       some.txt
|
\---this_empty_directory

> rmdir this_empty_directory

>tree /a /f .
base
\---this_directory
        some.txt
$ rmdir this_directory
rmdir: failed to remove 'this_directory': Directory not empty

$ tree --charset=ascii
base
|-- this_directory
|   `-- some.txt
`-- this_empty_directory

2 directories, 1 file

$ rmdir this_empty_directory

$ tree --charset=ascii
base
`-- this_directory
    `-- some.txt

RMDIR /S /Q and RM -R ; RM -RF

>rmdir /s /q this_directory

>tree /a /f
base
\---this_empty_directory

>rmdir /s /q this_empty_directory

>tree /a /f
base
No subfolders exist
$ rm -r this_directory

$ tree --charset=ascii
base
`-- this_empty_directory

$ rm -r this_empty_directory

$ tree --charset=ascii
base
0 directories, 0 files
$ rm -rf this_directory

$ tree --charset=ascii
base
`-- this_empty_directory

$ rm -rf this_empty_directory

$ tree --charset=ascii
base
0 directories, 0 files

RMDIR /S AND RM -RI ここでは少し違いがありますが、かなり近いです。

>rmdir /s this_directory
this_directory, Are you sure (Y/N)? y

>tree /a /f
base
\---this_empty_directory

>rmdir /s this_empty_directory
this_empty_directory, Are you sure (Y/N)? y

>tree /a /f
base
No subfolders exist
$ rm -ri this_directory
rm: descend into directory 'this_directory'? y
rm: remove regular file 'this_directory/some.txt'? y
rm: remove directory 'this_directory'? y

$ tree --charset=ascii
base
`-- this_empty_directory

$ rm -ri this_empty_directory
rm: remove directory 'this_empty_directory'? y

$ tree --charset=ascii
base
0 directories, 0 files

I'M HOPING TO GET A MORE THOROUGH MOVE AND MV TEST


ノート

  1. 私はLeMoDaのウェブサイトについてほとんど何も知りませんが、情報が

Copyright©BenBullock2009-2018。全著作権所有。

アーカイブされた著作権表示

そして、いくつかのユーモア(はい、英国式綴り)と日本のトイレを修理する方法に関する情報とともに、たくさんの有用なプログラミングのヒントがあるようです。「茨城レポート」の話もありました、それウェブサイトなのかわかりません。

もっと頻繁に行くと思います。とても便利です。メールが彼のページにあるベン・ブロックへの小道具。彼が私にこの情報を削除してほしいと思ったら、私はそうします。

私はサイトからの免責事項アーカイブ)を含めます:

免責事項このサイトのコンピュータプログラムコードを使用する前に、次の免責事項をお読みください。

適用法で認められる範囲で、プログラムに対する保証はありません。書面で別段の定めがある場合を除き、著作権所有者および/または他の当事者は、明示または黙示を問わず、商品性および特定目的への適合性の黙示の保証を含むがこれに限定されない、いかなる種類の保証もなく「現状有姿」でプログラムを提供します。 。プログラムの品質とパフォーマンスに関するすべてのリスクはあなたにあります。プログラムに欠陥があることが判明した場合は、必要なすべてのサービス、修理、または修正の費用を負担するものとします。

いかなる場合も、適用法で義務付けられているか、書面で合意されていない限り、著作権所有者、または上記で許可されているようにプログラムを変更および/または伝達するその他の当事者は、一般的、特別、偶発的、または結果的な損害を含め、お客様に責任を負わないものとします。プログラムの使用または使用不能に起因する損害(データの損失またはデータの不正確なレンダリング、お客様または第三者による損失、またはプログラムが他のプログラムで動作しないことを含むがこれらに限定されない)そのような所有者または他の当事者は、そのような損害の可能性について知らされています。


  1. 実はグーグルで「rmに相当するcmd」を検索して情報を見つけました

https://www.google.com/search?q=cmd+equivalent+of+rm

私が共有している情報が最初に出てきました。


1
ファイルのrmdirフォルダdelを削除する場合は、「/」ではなく「/」にする必要があることに注意してください
JillAndMe
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.