前言:我喜欢 bash 并且无意开始任何形式的争论或圣战,希望这不是一个非常幼稚的问题。
这个问题与超级用户上的这篇文章有些相关,但我认为 OP 并不真正知道他在问什么。我在 FreeBSD、linux、OS X 和 Windows 上的 cygwin 上使用 bash。我最近在 Windows 上使用 PowerShell 也有丰富的经验。
是否有用于 *nix 的 shell,已经可用或正在开发中,它与 bash 兼容,但在混合中添加了一层面向对象的脚本?我所知道的唯一接近的是 python 控制台,但据我所知,它不提供对标准 shell 环境的访问。例如,我不能只是cd ~and ls,然后chmod +x file在 python 控制台中。我将不得不使用 python 来执行这些任务,而不是标准的 unix 二进制文件,或者使用 python 代码调用二进制文件。
这样的壳存在吗?
我有一个包含大约 7,000 个音乐文件的目录。我使用 lame 递归地将其中的所有文件重新编码到一个单独的目录中,输出具有相同相对路径和文件名的所有文件。输出文件具有 .mp3 扩展名,但某些输入文件具有不同的扩展名(.wma、.aac 等)。
我可以看到输出目录中缺少 ~100 个文件的文件计数差异。我想要做的是运行两个目录的比较并获取源中存在但不在目标中的文件列表。这很简单,除非我需要忽略文件扩展名的差异。
我试过在干运行打开的情况下使用 rsync,但我想不出一种方法来忽略文件扩展名。我也尝试过 diff,但无法找到仅按名称检查但忽略文件扩展名的选项。我开始想我可以在两个目录上执行递归 ls,删除文件扩展名,然后比较输出,但我真的不知道从哪里开始使用 sed 或 awk 修改 ls 输出。
architecture ×1
bash ×1
diff ×1
directory ×1
filenames ×1
scripting ×1
shell ×1
shell-script ×1