GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kopiere ich eine Datei, die mit einem Punkt beginnt?

Der Grund liegt darin, dass in bash , * enthält keine Dateien, die mit einem Punkt beginnen (. ).

Sie können rennen

cp A/.* B

Es wird Sie warnen, dass . nicht kopiert wurde oder .. , oder irgendwelche Unterverzeichnisse, aber das ist in Ordnung.

Oder, wenn Sie Punktdateien und normale Dateien zusammen kopieren möchten, führen Sie

aus
cp A/.* A/* B

Sie könnten auch rennen

shopt -s dotglob
cp A/* B

was in bash funktionieren wird , aber nicht sh .

Und wenn es Ihnen nichts ausmacht, dass auch Unterverzeichnisse kopiert werden, dann ist das am einfachsten:

cp -R A/ B

Tipp:Wenn Platzhalter einmal nicht das tun, was Sie erwarten, versuchen Sie es mit echo, z. B.

$ echo A/*
A/file1 A/file2

$ echo A/.*
A/. A/.. A/.hidden1 A/.hidden2

$ echo A/.* A/*
A/. A/.. A/.hidden1 A/.hidden2 A/file1 A/file2

$ shopt -s dotglob
$ echo A/*
A/file1 A/file2 A/.hidden1 A/.hidden2

Bei Bash können Sie dotglob setzen bevor Sie kopieren

shopt -s dotglob
cp A/* /destination

Oder eine Programmiersprache

$ ruby -rfileutils -e  'Dir[".*"].each {|x| FileUtils.copy(x,"/destination") if File.file?x}'

Wenn Sie dotglob nicht setzen möchten, einfach

cp A/.* /destination 2>/dev/null

Was Sie suchen, entspricht eher dem Folgenden:

cp A/.??* B/

Dies stimmt mit allen Punktdateien überein, aber nicht mit "." oder "..". Die meisten der oben genannten Lösungen sind in Ordnung, solange Sie nicht rekursiv arbeiten. Aber sobald Sie etwas tun möchten wie:

cp -R A/.??* B/

Ohne ".." wegzulassen, kopieren Sie alles aus dem übergeordneten Verzeichnis nach unten, einschließlich Nicht-Punktdateien.


Linux
  1. Wie öffne ich eine .8-Datei mit Man?

  2. Wie kopiert man rekursiv Dateien nach Dateierweiterung?

  3. Wie kompiliert man eine .c-Datei mit OpenSSL-Includes?

  4. Wie fülle ich eine Datei mit FF mit dd auf?

  5. So kopieren Sie ein ISO-Image auf USB mit dd

So verwenden Sie den Linux-rm-Befehl mit Beispielen

So beheben Sie Konvertierungsfehler mit Calibre

So kopieren Sie eine Datei mit einem Befehl in mehrere Verzeichnisse unter Linux

So kopieren Sie Dateien mit einer bestimmten Dateierweiterung rekursiv

So gehen Sie Dateinamen mit Leerzeichen in Linux an

So kopieren Sie eine Datei im Dateimanager