GNU/Linux >> Belajar Linux >  >> Linux

Haruskah saya meletakkan garis miring setelah sumber dan tujuan saat menyalin folder

Saya mencoba untuk membuntuti / pada target.

Jika saya membuat kesalahan dan sumber dan target keduanya adalah file dan bukan direktori, tambahkan / berarti saya akan mendapatkan kesalahan; tanpa / itu akan merusak file target.

(Penyelesaian tab biasanya akan menambahkan / di akhir jadi biasanya lebih mudah untuk menambahkannya daripada tidak.)

Lihat jawaban Volker Siegel untuk detail lebih lanjut.


Tidak ada garis miring pada direktori sumber

Anda tidak boleh letakkan garis miring pada direktori sumber:

Intinya relevan dengan cp - namun juga ke mv , yang jauh lebih penting .

Saya akan mengutip peringatan dari manual - perhatikan bahwa itu tidak ditemukan di halaman manual, tetapi di halaman info info coreutils 'mv invocation' :

Peringatan :Hindari menentukan nama sumber dengan garis miring, ketika itu mungkin merupakan symlink ke direktori. Jika tidak, 'mv' mungkin melakukan sesuatu yang sangat mengejutkan, karena perilakunya bergantung pada pemanggilan sistem yang mendasarinya. Pada sistem dengan kernel berbasis Linux modern, gagal dengan 'errno=ENOTDIR'. Namun, pada sistem lain (setidaknya FreeBSD 6.1 dan Solaris 10) ia diam-diam mengganti nama bukan symlink melainkan direktori yang direferensikan oleh symlink.

Gunakan garis miring pada direktori tujuan

Jika Anda ingin memindahkan file dan direktori ke direktori, Anda harus menambahkan garis miring ke direktori tujuan.
Itu tidak mengubah apa pun selama semuanya berjalan dengan baik.
Tapi itu bisa menyelamatkan Anda dari kesalahan umum yang menyebabkan kehilangan atau perubahan data:

Jika Anda memindahkan file ke direktori, ada dua hal yang bisa salah:
Anda mungkin salah mengeja komponen terakhir dari nama direktori tujuan, seperti satu karakter yang salah. Dua hal yang dapat terjadi adalah dua kasus berikut:

  • Jika salah eja nama tidak ada:

    • file akan diganti namanya menjadi nama yang salah eja

    • itu dipindahkan ke direktori induk dari tujuan yang dimaksud

    • Jadi akhirnya tidak seperti itu, tidak seperti yang Anda harapkan.

  • Jika nama yang salah eja benar ada, dan merupakan file:

    • file akan menimpa file dengan nama yang salah eja, di direktori induk tujuan.

    • Sekali lagi, Anda tidak akan menemukannya di mana dulu, atau di mana seharusnya:itu menghilang begitu saja.

Jika Anda menggunakan garis miring pada direktori tujuan, kedua kasus tersebut dicegah:

Itu membuat mv tidak menggunakannya sebagai nama file seperti biasanya. Sebagai gantinya, mv hanya memberikan kesalahan:

mv: failed to access ‘foo/’: Not a directory

Otomatis menghapus garis miring

Ada opsi khusus untuk cp dan mv untuk mengurangi risiko dengan selalu menghapus garis miring dari src dirs:

Some GNU programs (at least `cp' and `mv') allow you to remove any
trailing slashes from each SOURCE argument before operating on it.  The
`--strip-trailing-slashes' option enables this behavior.

   This is useful when a SOURCE argument may have a trailing slash and
specify a symbolic link to a directory.  This scenario is in fact rather
common because some shells can automatically append a trailing slash
when performing file name completion on such symbolic links.  Without
this option, `mv', for example, (via the system's rename function) must
interpret a trailing slash as a request to dereference the symbolic link
and so must rename the indirectly referenced _directory_ and not the
symbolic link.  Although it may seem surprising that such behavior be
the default, it is required by POSIX and is consistent with other parts
of that standard.

Linux
  1. Antivirus di Linux:Haruskah Saya Benar-Benar Menggunakannya dan Jika Ya, Kapan Saya Membutuhkannya?

  2. Saat Anda Mengetik "ls -a", Apa Arti "." Dan ".."?

  3. Kapan Dan Mengapa Saya Harus Menggunakan Pembaruan Apt-get?

  1. Salin File yang Dimodifikasi Setelah Tanggal Tertentu Menggunakan Cp Switch?

  2. Pelajari cara menyalin file dan folder dari/ke server lain

  3. Cara Menyalin / Memindahkan File dan Direktori di Linux dengan perintah "cp" dan "mv"

  1. Cara Menemukan dan Menyalin Jenis File Tertentu Dari Satu Direktori Ke Direktori Lain Di Linux

  2. Bagaimana Membandingkan Dua Folder Dan Salin Perbedaannya Ke Folder Ketiga?

  3. Menggabungkan Folder Dengan Mv?