我有一個cgi腳本,它調用服務器端bash腳本將一首歌曲(在cgi頁面上的文本框中輸入)添加到rhythmbox隊列中。 我能夠與在find命令中省略目錄名稱
name=`echo "$*" | sed 's/+/*/g'`
rhythmbox-client --enqueue *$name*
然而,Rhythmbox的客戶端--enqueue區分sensative,這意味着如果歌曲/樂隊的名字有一個大寫字母,和用戶沒有鍵入字母來做到這一點在cgi腳本中有一個大寫字母,它將不起作用。 我也有一個單獨的命令來搜索我的音樂目錄中給定的歌曲/樂隊的名字......
search=`find -iname *\$name\*`
if [ "$search" = "" ];
then echo "No song found."
else echo "The following songs have been added to the queue: $search"
fi
我想知道是否有任何的方式來刪除查找結果的目錄,然後我可以只需將其轉換爲var以與--enqueue命令一起使用,因爲find命令可能會被忽略,從而忽略資本化的持久性。
你使用的是什麼版本的'find'? GNU'find'支持'-printf「%P」',它打印文件的名稱減去目錄參數'find'正在搜索中,除非你沒有使用GNU'find',因爲你不是指定要搜索的目錄。 – chepner 2014-12-08 00:18:13
這工作,但沒有得到1行每個結果發現它只是將它們全部變成一條長長的行任何方式來解決這個問題? – 2014-12-08 00:45:06
只需在格式字符串中加\ n,在每個文件名後面打印換行符。 – chepner 2014-12-08 01:22:27