我需要从当前 mc 面板中的文件名中删除一些第一个字符,并使用此名称在被动 mc 面板中创建硬链接(hard link)。示例:
ls 001-a\ b.flac | cut -c 5- | xargs -0 -I{} echo ln %p %D/{}
我得到预期结果:
ln 001-a b.flac /srv/Music/a b.flac
但是,没有回声:
ls 001-a\ b.flac | cut -c 5- | xargs -0 -I{} ln %p %D/{}
我得到结果:
ln 001-a b.flac /srv/Music/a b.flac.
被动面板文件名末尾带点
我发现了类似的问题 how to remove final “dot” from directory name .但是如何避免在 mc 扩展命令中文件名末尾出现这个点?
附言
mc 扩展文件中的问题 xpression:
regex/i/\.flac
Open=ls %p | cut -c 5- | xargs -0 -I{} ln %p %D/{}
添加解决方案?
我在 "How can i pass all arguments with xargs in middle of command in linux" 中找到的如何制作带有硬链接(hard link)和重构歌曲名称的播放列表
ln %p %D/"`ls %p | cut -c 5- `"
它只适用于 mc 环境
最佳答案
有没有考虑过用find/sed修改名字?
find . -name "001-a b.flac" -maxdepth 0 -print0 | sed 's/001-//g' | xargs -0 -I{} ln %p %D/{}
那么你当然可以让 sed 更通用:
sed 's/[[:digit:]]\+-//g'
我不确定“mc”是什么,所以我的回答可能不是您所需要的。祝你好运。
关于末尾带点的linux mc扩展命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27669589/