シンボリックリンクとディレクトリ切り替え

シンボリックリンクとディレクトリ切り替え

ディレクトリとシンボリックリンクがあります。

mkdir dir
ln -s dir dir_symlink

シンボリックリンクをディレクトリに置き換え、ディレクトリをシンボリックリンクに置き換えたいと思います。これをアトミックに(または非常に高速に)実行する方法はありますか?カタログが膨大です。

dirこれで、ディレクトリへのシンボリックリンクが必要ですdir_symlink(もはやシンボリックリンクではなく、以前のコンテンツを含むdir)。

ベストアンサー1

これを頻繁に実行する必要がある場合は、次のような小さなbashスクリプトを作成します。

#!/bin/bash

echo "select symlink"
read -e -r symlink
echo "select directory"
read -e -r dir

var=$(echo "$dir" | sed 's/\///g')

rm "$symlink"
mv "$dir" "$symlink"
ln -s "$symlink" "$var"

このsedコマンドは、オート/コンプリートを使用するときに追加された入力を削除します。
メモ:ディレクトリツリーを選択すると、このコンテンツもすべて削除されます。

sed次のように、行の末尾のみが一致することがわかります。sed 's/\/*$//g'

おすすめ記事