Saya memiliki pohon direktori yang memiliki banyak tautan simbolis ke file di bawah /home
... namun, saya telah pindah /home
ke /mnt/home
dan memerlukan cara untuk "menautkan kembali" semua symlink. Apakah fungsi tersebut ada atau apakah saya perlu menulis skrip untuk melakukannya?
Sebagai contoh, saya memiliki sesuatu seperti berikut:
[root@trees ~]# ls -l /mnt/home/someone/something
total 4264
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 a -> /home/someone/someotherthing/a
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 b -> /home/someone/someotherthing/b
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 c -> /home/someone/someotherthing/c
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 d -> /home/someone/someotherthing/d
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 e -> /home/someone/someotherthing/e
/mnt/home/someone/something/subdir:
total 4264
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 a -> /home/someone/someotherthing/subdir/a
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 b -> /home/someone/someotherthing/subdir/b
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 c -> /home/someone/someotherthing/subdir/c
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 d -> /home/someone/someotherthing/subdir/d
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 e -> /home/someone/someotherthing/subdir/e
Saya ingin perintah yang akan menemukan semua symlink dan menghubungkan kembali ke tempat yang sama tetapi di bawah /mnt/home
alih-alih/home
Apakah ada perintah seperti itu?
sumber
/mnt
ke sebuah path; Anda tidak memerlukan operasi string yang lebih menarik daripada penggabungan.Saya tahu ini tidak persis apa yang diminta penulis tetapi tampaknya mereka sudah memiliki jawaban mereka jadi saya menambahkan ini untuk orang lain seperti saya yang tersandung pada pertanyaan.
Berikut ini akan membantu jika solusi yang lebih fleksibel diperlukan seperti memiliki banyak tautan simbolik yang rusak yang dapat diperbaiki dengan mengganti bagian dari target tautan simbolik.
misalnya. Setelah perubahan nama pengguna, untuk mengganti nama pengguna lama dengan nama pengguna baru di target banyak tautan, setelah perpindahan sudah dilakukan. Buat skrip yang disebut ganti-simlink yang ditunjukkan di bawah:
dan menyebutnya dengan perintah berikut:
Semoga ini bisa membantu seseorang
sunting: Terima kasih Gilles untuk kickstart pada skrip ini dan tip tentang menggunakan skrip symlink untuk membuat tautan relatif.
sumber
target=${target/"/home"/"/mnt/home"}
Sangat membantu. Terima kasih.Buat
/home
sebagai symlink ke/mnt/home
, dan semua symlink yang ada akan valid lagi.sumber