GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara memindahkan tautan simbolik relatif?

Anda dapat mengubah jalur relatif menjadi jalur lengkap menggunakan readlink -f foo . Jadi, Anda akan melakukan sesuatu seperti:

ln -s $(readlink -f $origlink) $newlink
rm $origlink

EDIT:

Saya perhatikan bahwa Anda ingin menjaga jalur tetap relatif. Dalam hal ini, setelah Anda memindahkan tautan, Anda dapat menggunakan symlinks -c untuk mengonversi jalur absolut kembali ke jalur relatif.


Ini adalah perl solusi yang mempertahankan jalur relatif:

use strictures;
use File::Copy qw(mv);
use Getopt::Long qw(GetOptions);
use Path::Class qw(file);
use autodie qw(:all GetOptions mv);

my $target;
GetOptions('target-directory=s' => \$target);
die "$0 -t target_dir symlink1 symlink2 symlink3\n" unless $target && -d $target;

for (@ARGV) {
    unless (-l $_) {
        warn "$_ is not a symlink\n";
        next;
    }
    my $newlink = file(readlink $_)->relative($target)->stringify;
    unlink $_;
    symlink $newlink, $_;
    mv $_, $target;
}

Linux
  1. Cara membuat tautan ke direktori

  2. Bagaimana saya bisa memaksa hanya jalur relatif dalam menemukan keluaran?

  3. Bagaimana cara menyalin tautan simbolik?

  1. Cara Membuat Tautan Keras dan Simbolik di Linux

  2. Jalur Absolut / Kanonik / Relatif?

  3. Bagaimana cara memindahkan partisi di GNU/Linux?

  1. Bagaimana cara mengompres tautan simbolik?

  2. Bagaimana memulihkan setelah menghapus tautan simbolik libc.so.6?

  3. Bagaimana cara menghapus tautan simbolik ke direktori?