2012-04-10 53 views
0

大家好。在UNIX中退出一个目录中的许多文件的隐藏属性

我想知道是否有一组命令(可能是一个管道集),可用于更改存储在特定目录中,具有相同名称的许多文件的隐藏属性的命令。

即。

ls -la inside torrents/music/david_guetta_greatest_hits shows the next files: 

drwxrwxrwx 20 crsuarez staff  680 Apr 9 19:25 . 
drwxrwxrwx 20 crsuarez staff  680 Apr 9 19:11 .. 
-rw-r--r-- 1 crsuarez staff 6894561 Apr 9 19:16 .Fuck Me I'm Famous.wma 
-rw-r--r-- 1 crsuarez staff 7543777 Apr 9 19:16 .Gettin Over.wma 
-rw-r--r-- 1 crsuarez staff 6378465 Apr 9 19:16 .I Gotta Feeling.wma 
-rw-r--r-- 1 crsuarez staff 7245793 Apr 9 19:16 .In love with myself.wma 
-rw-r--r-- 1 crsuarez staff 7060449 Apr 9 19:16 .It's the Way You Love Me.wma 
-rw-r--r-- 1 crsuarez staff 7737313 Apr 9 19:16 .Love Don't Let Me Go.wma 
-rw-r--r-- 1 crsuarez staff 7737313 Apr 9 19:16 .Love is Gone.wma 
-rw-r--r-- 1 crsuarez staff 6628321 Apr 9 19:16 .Memories.wma 
-rw-r--r-- 1 crsuarez staff 7525345 Apr 9 19:16 .Money.wma 
-rw-r--r-- 1 crsuarez staff 7806945 Apr 9 19:16 .One Love.wma 
-rw-r--r-- 1 crsuarez staff 7192545 Apr 9 19:16 .Sexy Bitch.wma 
-rw-r--r-- 1 crsuarez staff 6954977 Apr 9 19:16 .Stay.wma 
-rw-r--r-- 1 crsuarez staff 8025057 Apr 9 19:16 .The World is Mine.wma 
-rw-r--r-- 1 crsuarez staff 7769057 Apr 9 19:16 .TitaniuM.wma 
-rw-r--r-- 1 crsuarez staff 6693857 Apr 9 19:16 .Turn ME ON.wma 
-rw-r--r-- 1 crsuarez staff 7215073 Apr 9 19:16 .When Love Takes Over.wma 
-rw-r--r-- 1 crsuarez staff 8182753 Apr 9 19:16 .Without YoU.wma 

我想取消隐藏这一切与一个单一的命令集(我不在乎,如果我要使用管道)文件,而不是使用mv .hidden_file_name not_hidden_file_name

该解决方案必须是OSX投诉。 ;)

+1

有没有这样的事,作为一个“隐藏属性”。你似乎想要做的是重命名这些文件,以使它们的名字不以'.'开头。请参阅[Ignacio Vazquez-Abrams](http://stackoverflow.com/users/20862/ignacio-vazquez-abrams)的答案。 – Celada 2012-04-10 00:41:06

+0

我忘了提及解决方案必须是OSX兼容的。 :) – crsuarezf 2012-04-10 00:49:48

回答

1

像这样的事情

for origname in .[0-9A-Za-z]* 
do 
    if [ -f "${origname}" ]; then 
     # compute your newname how you want it 
     mv "${origname}" "${newname} 
    fi 
done 

你必须决定你想要你的新名字是什么 - 你会去掉前面的点'.'但只是在做很可能会与碰撞现有的具有相同名称的.wma文件,所以可能还有追加.tmp - 样:

.One Love.wma --becomes--> One Love.wma.tmp 
+0

这是完美的,我只需要管道。我正在尝试使用sed,但是我无法脱离主要点。 :S for i in。[0-9A-Za-z] *;做echo $ i | sed'定期表达去掉领先点';完成 – crsuarezf 2012-04-10 01:19:01

+0

我有这个,但我需要解决与.wma的问题:S 为我in。[0-9A-Za-z] *;做N ='回声“$ i”| sed“s /.//g”'; mv“$ i”“$ N”; DONE – crsuarezf 2012-04-10 02:01:55

1

在Debian衍生系统上使用prenamerename)。

prename 's/^.//' .*.wma 
相关问题