Was ist der Unterschied zwischen den folgenden 2 Befehlen?
cp -rp /dir1/*.* /dir2/
cp -rp /dir1/* /dir2/
shell
shell-script
command-line
cp
stany
quelle
quelle
.
like beginnen.bashrc
) werden mit keinem dieser Befehle kopiert. Um diese Dateien zu kopieren, sollten Sie ausdrücklich angeben, dass.*
zum Kopieren aller Dateien (einschließlich versteckter Dateien) der Befehlcp -rp /dir1/.* /dir1/* /dir2/
*.*
ist es die MS-DOS / Windows-Methode, während*
es die UNIX / Linux-Methode ist. In Unix-Suffix (Dateiendung, der Teil nach.
- like.txt
oder.jpg
) ist optional ... In MS-DOS waren.
(Punkt) und Suffix erforderlich, damit alle Dateien übereinstimmen, eine wurde verwendet*.*
- während alle Textdateien übereinstimmen würde man benutzen*.txt
.FILENAME
oder sogar gebenFILE
.*.*
in DOS stimmt immer noch mit Dateien mit dem NamenFILENAME
oder übereinFILE
, weil der Name "wirklich"FILENAME.
oderFILE.
(mit einer leeren Erweiterung) ist. In Unix ist der Name "wirklich"FILENAME
oderFILE
,*.*
wird also nicht übereinstimmen.*
nur zusammenFILE
und nichtFILE.TXT
.Antworten:
*.*
Stimmt nur mit Dateinamen überein, die einen Punkt in der Mitte oder am Ende haben. Beispielsweise:*
Entspricht den obigen Dateinamen sowie den Namen, die überhaupt keinen Punkt haben. beispielsweise:quelle
*.*
die richtige Methode war, um alle Dateien unter MS-DOS ab dem Tag von 8 + 3 Dateinamen abzugleichen. In MS-DOS ist der Punkt obligatorisch (wenn auch implizit für Dateien, die keine Erweiterung haben).*.*
Matchesfoo.
aber nicht.foo
. Diese Asymmetrie ist schrecklich..
(aktuelles Verzeichnis) und..
(übergeordnetes Verzeichnis) zu überspringen, die immer in einem beliebigen Verzeichnis vorhanden sind (auch leere Verzeichnisse). Ritchie und Thompson betrachteten es später als nützliche Funktion, alle.*rc
Konfigurationsdateien (standardmäßig) auszublenden, und fügten eine explizite-a
Option hinzuls
, um alle diese (mit einem führenden Punkt versehenen) "versteckten" Einträge anzuzeigen. Das ist also nicht sehr überraschend, wenn man die Unix-Geschichte kennt. Ein führender Punkt in Unix ist seit "für immer" etwas Besonderes.Angenommen, Sie haben folgende Dateien in
/dir1
:Dieser Befehl kopiert nur die folgenden Dateien:
Dadurch werden alle Dateien in kopiert
/dir1
Die Bedingung gilt auch für die Unterverzeichnisse in
/dir1
.quelle