Ini tidak termasuk file tersembunyi, dan ini menautkan seluruh direktori. Jika salah satu dari ini bukan yang Anda inginkan, lihat jawaban saya. Jika tidak, ini adalah jalan terpendek.
Cascabel
Kamu benar. Tapi perpustakaan biasanya tidak disembunyikan. Dalam kasus apapun, dotfiles terlibat, solusi Anda akan lebih berguna.
1
akankah ini mengarah ke folder lain secara permanen?
nmkyuppie
@YuPPie Saya kira, itu hanya membuat hardlink ke setiap file di direktori. (ini yang saya inginkan hari ini, jadi +1: D)
Nama Tampilan
2
@SargeBorsch Ini menciptakan tautan simbolik (tautan keras berbeda).
jsejcksn
90
GNU cpmemiliki opsi untuk membuat symlink daripada menyalin.
cp -rs /mnt/usr/lib /usr/
Perhatikan ini adalah ekstensi GNU yang tidak ditemukan di POSIXcp .
Solusi yang diposting tidak akan menautkan file tersembunyi apa pun. Untuk memasukkannya, coba ini:
cd /usr/lib
find /mnt/usr/lib -maxdepth 1 -print "%P\n" | while read file; do ln -s "/mnt/usr/lib/$file" "$file"; done
Jika Anda kebetulan ingin membuat direktori secara rekursif dan hanya menautkan file (sehingga jika Anda membuat file di dalam direktori, sebenarnya /usr/libtidak ada /mnt/usr/lib), Anda dapat melakukan ini:
cd /usr/lib
find /mnt/usr/lib -mindepth 1 -depth -type d -printf "%P\n" | while read dir; do mkdir -p "$dir"; done
find /mnt/usr/lib -type f -printf "%P\n" | while read file; do ln -s "/mnt/usr/lib/$file" "$file"; done
Saya percaya ini juga harus berfungsi sebagai cara untuk wildcard di file tersembunyi, jika Anda telah mengaktifkan globbing diperpanjang di bash. Ini cocok dengan segala sesuatu yang dimulai dengan sebuah titik, diikuti oleh sesuatu selain tidak ada atau titik lain (yaitu tidak termasuk ./dan ../):ln -s /mnt/usr/lib/.!(|.)* /usr/lib
Jawaban:
Saya kira, ini milik superuser.
sumber
GNU
cp
memiliki opsi untuk membuat symlink daripada menyalin.Perhatikan ini adalah ekstensi GNU yang tidak ditemukan di POSIX
cp
.sumber
sumber
Solusi yang diposting tidak akan menautkan file tersembunyi apa pun. Untuk memasukkannya, coba ini:
Jika Anda kebetulan ingin membuat direktori secara rekursif dan hanya menautkan file (sehingga jika Anda membuat file di dalam direktori, sebenarnya
/usr/lib
tidak ada/mnt/usr/lib
), Anda dapat melakukan ini:sumber
./
dan../
):ln -s /mnt/usr/lib/.!(|.)* /usr/lib