2012-02-17 16 views
0

我想遞歸搜索目錄樹並獲取10個最近修改過的文件。 對於這些文件中的每一個,我想在我的/home/mostrecent/目錄中創建符號鏈接。linux根據最近修改過的文件創建符號鏈接

我知道我可以用腳本語言來解決這個問題,但是我有點惱火,我不能用linux命令來做到這一點!

到目前爲止,我有這樣的:

find /home/myfiles -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort | tail -n 10 | cut -c 32- 

如何創建這些文件中的每一個在/home/mostrecent一個符號鏈接,而無需使用腳本語言?

回答

2

其實,bash一種腳本語言,有能力這樣做,甚至在命令行:-)

假設命令你發佈的作品(那種東西更多,似乎,基於我粗略的測試),你可以做:

i=0 
for f in $(CMD) ; do 
    ln -s $f $HOME/recent$i 
    ((i++)) 
done 

或者,作爲一個班輪:

i=0;for f in $(CMD);do ln -s $f $HOME/recent$i;((i++));done 

這WIL l在主目錄中創建文件recent0recent9,這些文件是符號鏈接到最新的文件。

很顯然,你應該把你實際命令,其中我已經把標記文本CMD以上。我已經使用了標記,因此它在SO上的格式很好。


正如揚鄔達克在評論中指出,這將只對沒有空格的文件,邪惡的東西在我看來,工作:-)

但是,因爲人們似乎使用它們,您可以使用更安全:

i=0 
CMD | while read f; do 
    ln -s $f $HOME/recent$i 
    ((i++)) 
done 

,並再次一行程序版本:

i=0;CMD|while read f;do ln -s $f $HOME/recent$i;((i++));done 
+0

這是一個很好的答案,非常感謝。 – jon 2012-02-17 12:56:46

+1

我會建議'put-that-c​​ommand-here |同時讀f;做...完成'而不是。它具有正確處理空間文件的優點(它仍然不會處理帶有換行符的文件,但這些文件不是常見的;空格),並且即使對於shell不想在內存中加載的大型列表也能正常工作一旦。 – 2012-02-17 13:27:57

+0

這是一個很好的觀點,@Jan,我已經調整了答案以包含您的建議。 – paxdiablo 2012-02-17 13:44:41

0

我解決了這個與SED。

所有冰雹sed!

find /home/myfiles/ -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort | tail -n 10 | cut -c 21- | sed -e "s/^/ln -s \"/" -e "s/$/\"/" -e "s/$/ \"\/home\recent\/\"/" | sh 

如果我管sedcat而不是sh,這是輸出:

ln -s "/home/myfiles/1.simplest" "/home/recent/" 
ln -s "/home/myfiles/2.with space" "/home/recent/" 
ln -s "/home/myfiles/3.with'apostraphe" "/home/recent/" 
ln -s "/home/myfiles/4.with'apostrophe space" "/home/recent/" 

感謝您的幫助。

0

創建符號鏈接到在過去的24個小時內修改的幾種文件類型,具有相同的文件名(當然不同的路徑)

由於大同,揚和喬恩,而在稍加修改...

做一個 '最近' 目錄

mkdir ~/recent 

創建 'getrecentfiles.sh',添加...

#!/usr/bin/bash 
find $HOME -mtime 0 -name \*.txt -print -o \ 
      -mtime 0 -name \*.pdf -print -o \ 
      -mtime 0 -name \*.extensionname -print -o | while read f; do 
     ln -s $f $HOME/recent/ 
done 

過濾器:

-mtime(N * 24小時)的時間自去年修改(N = 1示出了變形體重24-48hrs前,只有文件)

-o是OR運算符的多個文件秒(默認爲AND)

將其更改爲可執行文件,將其添加到您的啓動腳本,並建立一個快捷方式在桌面上到〜/最近,手頭上有你想要的最新的文件!

相關問題