NTFS目录在bash shell中打开。什么命令将递归地截断目录中的所有文件名到ext3所需的255个字符限制?在255个字符处截断所有文件名的命令
0
A
回答
1
如果你有机会到Windows外壳,您可以使用:
@echo off
setlocal EnableDelayedExpansion
REM loop over all files in the cwd
for /f %%a in ('dir /a-d /b') do (
REM store this filename in a variable so we can do substringing
set ThisFileName=%%a
REM now take a substring
set ThisShortFileName=!ThisFileName:~0,255!
REM finally, the rename:
echo ren %%a !ThisShortFileName!
)
:EOF
endlocal
(注:我重命名命令之前增加了回音,所以您可以直观地验证它之前的实际工作运行它。工作对我的箱子。)
我敢肯定有人谁是在* nix盒可马上作出的bash一个类似的脚本,但我坚持在Windows世界:)
好运!
0
$ cat truncname
#!/bin/bash
# requires basename, dirname, and sed
mv $1 `dirname $1`/`basename $1 | sed 's/^\(.\{0,255\}\).*/\1/'`
$ chmod a+x truncname
$ find . -exec ./truncname {} \;
+0
我试过一个文件夹上运行shell脚本,并得到了以下错误: 提示:/媒体/ DUALOS $ SH〜/ truncname.sh东西 /home/username/truncname.sh:1:$:未找到 mv:无法将`stuff'移动到它自己的子目录,`./stuff/stuff' /home/username/truncname.sh:5:$:not found /home/username/truncname.sh:6:$ :找不到 – 2009-05-02 23:36:24
1
假设壳坐在NTFS目录,因为它的PWD:
for f in *; do mv $f ${f:0:255}; done
戴夫的sed的基础版本类似,但避免了每个文件的高管。由于最大命令行数限制,会炸毁一个真正巨大的目录,并且不会执行子目录。
相关问题
- 1. mySQL:截断所有表的命令
- 2. 命令截断文件中引用的字符串?
- 3. MySQL截断命令 - 统一码字符
- 4. unix命令截断文件内容
- 5. plink截断命令
- 6. 如何截断目录中所有文件的最后两个字符?
- 7. Shell命令,以确定文件`foo`是文件的截断`bar`
- 8. SqlCommand()ExecuteNonQuery()截断命令文本
- 9. shell命令截断/剪切字符串的一部分
- 10. Excel中OLEDB场截断在255
- 11. 截断一个文件名 - 扩展
- 12. 访问SQL /查询在25个字符处截断了字段?
- 13. x个字符后截断字符串
- 14. 从命令提示符处复制和重命名文件(Windows)
- 15. Subversion:重命名所有包含特定字符的文件夹
- 16. Word宏无法保存文件名> 255个字符
- 17. 正则表达式在截尾处截断字符串
- 18. ReadLn从文件> 255字符在pascal
- 19. 截断在python字符串
- 20. 从列名截断字符串
- 21. 如何将查询导出到Excel而不截断Memos为255个字符?
- 22. 截断字符串
- 23. 在Windows命令(批处理文件)中重命名文件名的一部分
- 24. 如何在字符的第一个实例处截断字符串?
- 25. 需要Xcopy命令来复制和重命名所有文件
- 26. 截断没有空白的字符串
- 27. ls -l将用户名和组名截断为8个字符
- 28. 截断sharepoint中的文本字符串
- 29. ffmpeg的批处理命令修剪所有的MP3文件夹
- 30. DOS命令重定向到文件截断输出
这个工作,但我不得不使文件名更短,因为目录计为255个字符。 – 2009-05-21 20:27:21