特定のハードドライブ内のすべてのフォルダとファイルを検索するスクリプトを作成しようとしています。私は別のフォルダへのシンボリックリンクを作成したい。しかし、lnコマンドが失敗した場合、ln -sf $ MOVIE_FILE_LINKS -t $ MOVIES_LIBコマンドを変更してスペースを含むフォルダを作成することができますか?あなたはfind
の-exec
アクションを使用しようとすることができ おかげLinux bashスクリプトのシンボリックリンク(
#! /bin/bash
# Version: 2017.02.21
SRC="/mnt/hdd_1.5T
/mnt/hdd_4T"
MOVIES_TEXT="Movies.*"
MOVIES_LIB="/mnt/Library.Movies/"
rm -rf $MOVIES_LIB #need more elegant solution
mkdir -p $MOVIES_LIB
clear
MOVIE_DIRS=$(find $SRC -maxdepth 1 -type d -name "$MOVIES_TEXT")
MOVIE_DIR_LINKS=$(find $MOVIE_DIRS -maxdepth 1 -type d | sort | awk '$0 !~ last "/" {print last} {last=$0} END {print last}')
MOVIE_FILE_LINKS=$(find $MOVIE_DIRS -maxdepth 1 -type f -name "*.*")
echo "$MOVIE_DIR_LINKS"
#ln -sf $MOVIE_LINKS $MOVIES_LIB;
echo "$MOVIE_FILE_LINKS"
#ln -sf $MOVIE_FILE_LINKS -t $MOVIES_LIB;
は、バックスラッシュと空白をエスケープするか、二重引用符の中に引数を置きます。 – arkascha
二重引用符は次のようには機能しません。ln -sf "" $ MOVIE_FILE_LINKS "" -t $ MOVIES_LIB; – DaeMonS
'ln -sf" $ MOVIE_FILE_LINKS "-t" $ MOVIES_LIB "'? –