【已解决】遍历目录的脚本老写不好,急躁【写了一个魅族M3用的播放列表制作工具】
-
- 论坛版主
- 帖子: 21308
- 注册时间: 2007-08-02 20:29
- 系统: 窓辺とうこ
Re: 遍历目录的脚本老写不好,急躁。。
那你用find好了
find ~ ! -type d -exec ls '{}' \;
find ~ ! -type d -exec ls '{}' \;
-
- 论坛版主
- 帖子: 21308
- 注册时间: 2007-08-02 20:29
- 系统: 窓辺とうこ
Re: 遍历目录的脚本老写不好,急躁。。
不是说代码啦,是输出,所有文件夹和文件都直接列出来了,分不清层次ルルティア 写了:不是蛮有层次的嘛,不会是你浏览器坏了吧![]()
你那个很奇怪啊,是不是我的解释器和你的不一样。。
- ルルティア
- 帖子: 1077
- 注册时间: 2010-05-23 17:10
Re: 遍历目录的脚本老写不好,急躁。。
这个貌似很有效啊,不过要处理那些结果也很麻烦,我就是想自己进目录去。。不要别的命令进。。JiangHui 写了:那你用find好了
find ~ ! -type d -exec ls '{}' \;
不过,这个啥意思啊,找到(find)类型(type)不是(!)目录(d)的,执行ls??后面'{}' \;干啥的啊?
-
- 论坛版主
- 帖子: 21308
- 注册时间: 2007-08-02 20:29
- 系统: 窓辺とうこ
Re: 遍历目录的脚本老写不好,急躁。。
你具体想干什么啊?
跟你说的差不多,find很强大也很复杂
跟你说的差不多,find很强大也很复杂
-
- 帖子: 18311
- 注册时间: 2008-01-09 22:41
Re: 遍历目录的脚本老写不好,急躁。。
man findルルティア 写了:这个貌似很有效啊,不过要处理那些结果也很麻烦,我就是想自己进目录去。。不要别的命令进。。JiangHui 写了:那你用find好了
find ~ ! -type d -exec ls '{}' \;
不过,这个啥意思啊,找到(find)类型(type)不是(!)目录(d)的,执行ls??后面'{}' \;干啥的啊?
SYNOPSIS
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
加上sudo 配合rm特别爽
-
- 帖子: 6548
- 注册时间: 2008-10-31 22:12
- 系统: 践兔
- 联系:
Re: 遍历目录的脚本老写不好,急躁。。
代码: 全选
tlcr: 0 庚寅年五月三十日 12:05:30 ~
>> dog 应用/源码/printdir/main.c
#include <unistd.h>
#include <stdio.h>
#include <dirent.h>
#include <string.h>
#include <sys/stat.h>
#include <stdlib.h>
void printdir(char *dir, int depth)
{
DIR *dp;
struct dirent *entry;
struct stat statbuf;
if((dp = opendir(dir)) == NULL)
{
fprintf(stderr, "Error: Cannot open directory: %s\n", dir);
return;
}
chdir(dir);
while((entry = readdir(dp)) != NULL)
{
lstat(entry->d_name, &statbuf);
if(S_ISDIR(statbuf.st_mode))
{
if(strcmp(".", entry->d_name) == 0 ||
strcmp("..", entry->d_name) == 0)
continue;
printf("%*s%s/\n", depth, "", entry->d_name);
printdir(entry->d_name, depth+4);
}
else printf("%*s%s\n", depth, "", entry->d_name);
}
chdir("..");
closedir(dp);
}
int main(int argc, char *argv[])
{
char *topdir = ".";
if(argc >= 2)
topdir = argv[1];
printf("Directory scan of %s\n", topdir);
printdir(topdir, 0);
printf("\ndone\n");
exit(0);
}
tlcr: 0 庚寅年五月三十日 12:26:08 ~
>>
代码: 全选
] ls -ld //
-
- 论坛版主
- 帖子: 21308
- 注册时间: 2007-08-02 20:29
- 系统: 窓辺とうこ
Re: 遍历目录的脚本老写不好,急躁。。

- ルルティア
- 帖子: 1077
- 注册时间: 2010-05-23 17:10
Re: 遍历目录的脚本老写不好,急躁。。
我想写一个制作播放列表的脚本
播放列表以每个文件夹的名字命名,内容是
#EXTM3U
#EXTINF:0,With An Orchid.mp3
\Yanni\With An Orchid.mp3
写了一个,估计肯定运行不了,这个方法不好,我还是看看怎么遍历吧。。
播放列表以每个文件夹的名字命名,内容是
#EXTM3U
#EXTINF:0,With An Orchid.mp3
\Yanni\With An Orchid.mp3
写了一个,估计肯定运行不了,这个方法不好,我还是看看怎么遍历吧。。
代码: 全选
find $1 -type d -exec find '{}' -maxdepth 0 -name '*.mp3' -o '*.wma' -o '*.flac' -execdir echo #EXTM3U'\n'#EXTINF:0,`ls '{}'`'\n'$(pwd)\`ls '{}'` >> `$(pwd).m3u` \; \;
- ルルティア
- 帖子: 1077
- 注册时间: 2010-05-23 17:10
Re: 遍历目录的脚本老写不好,急躁。。
这个程序我很多年前就写好了,当时是win下用VB写的,但是源码忘在姐的电脑里了,再也找不回来了。。 

- ルルティア
- 帖子: 1077
- 注册时间: 2010-05-23 17:10
Re: 遍历目录的脚本老写不好,急躁。。



-
- 论坛版主
- 帖子: 21308
- 注册时间: 2007-08-02 20:29
- 系统: 窓辺とうこ
Re: 遍历目录的脚本老写不好,急躁。。
slocate *.flac >> ~/playlist.m3u
- ルルティア
- 帖子: 1077
- 注册时间: 2010-05-23 17:10
Re: 遍历目录的脚本老写不好,急躁。。
这个手动一个一个生成很慢啊,还是得遍历。。JiangHui 写了:slocate *.flac >> ~/playlist.m3u
-
- 帖子: 18311
- 注册时间: 2008-01-09 22:41
Re: 遍历目录的脚本老写不好,急躁。。
纠结,真纠结
-
- 论坛版主
- 帖子: 21308
- 注册时间: 2007-08-02 20:29
- 系统: 窓辺とうこ
Re: 遍历目录的脚本老写不好,急躁。。
代码: 全选
#!/bin/sh
function pl()
{
while read line
do
dir=`dirname "$line"`
name=`basename "$dir"`
echo $name
echo "$line" >> ~/desktop/playlist/"$name".m3u
done
}
slocate "*.flac" | pl
- trigger
- 帖子: 1604
- 注册时间: 2006-10-25 18:08
Re: 遍历目录的脚本老写不好,急躁。。
代码: 全选
#!/bin/bash
#作用:进入当前目录下的所有递归子目录,说hi,再回到出发的目录,避免有空格文件名造成的for...in...错误
hi=`pwd`
du | awk '{ $1="";print $0 }' |
while read line
do
cd "$line" && echo "i am in "$line" now " && cd "$hi"
done
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。