Questions tagged «filenames»

文件名是用于在给定文件系统上唯一标识文件的名称。

3
系统文件应该小写吗,这是任何标准的一部分(例如POSIX)吗?
我公司转售了一个品牌名称为大小写混合的应用程序,例如“ ApplicationName”。 应用程序的安装程序会在此标准中创建所有路径和文件名。例如,主目录是/opt/ApplicationName,调用了init文件,ApplicationName因此我必须运行service ApplicationName status,依此类推。 对我来说,这违反了所有明智的约定,我认为文件和目录应该全部使用小写(在其他应用程序中(例如MySQL)有先例,MySQL的文件和目录都被称为mysql,甚至像Apache和Tomcat这样的应用程序都取消了前面的内容大写字母)。 如果我将其作为错误报告提出,我想提出一个更有力的论据,而不仅仅是“我认为这是错误的”。那么,是否在类似POSIX标准的文件中规定类似的系统文件应为小写?

7
可移植的方式来获取脚本的绝对路径?
(zsh)脚本确定其绝对路径的可移植方式是什么? 在Linux上,我使用类似 mypath=$(readlink -f $0) ...但这不是便携式的。(例如,readlink在darwin上,该-f标志无法识别,也没有任何等效的标志。)(当然,readlink为此使用的是一个相当晦涩的hack。) 有什么更便携的方式?



3
逐行分割文件并控制生成的文件扩展名
有一个用于文件拆分的标准命令-split。 例如,如果我想将单词文件分成几行(每行10000行),则可以使用: split -dl 10000 words wrd 它将生成几个格式为wrd.01,wrd.02等的文件。 但是我想为这些文件指定特定的扩展名-例如,我想获取wtd.01.txt,wrd.02.txt文件。 有办法吗?
28 shell  filenames  split 


2
运行perl -ne'...'的安全隐患*
显然,正在运行: perl -n -e 'some perl code' * 要么 find . ... -exec perl -n -e '...' {} + (与相同,-p而不是-n) 要么 perl -e 'some code using <>' * 通常在此网站上发布的单行代码中发现,具有安全隐患。这是怎么回事?如何避免呢?

5
具有数字顺序的球
我在目录中有以下pdf文件列表: c0.pdf c12.pdf c15.pdf c18.pdf c20.pdf c4.pdf c7.pdf c10.pdf c13.pdf c16.pdf c19.pdf c2.pdf c5.pdf c8.pdf c11.pdf c14.pdf c17.pdf c1.pdf c3.pdf c6.pdf c9.pdf 我想使用ghostscript以数字顺序将它们连接起来(类似于此): gs -q -sPAPERSIZE=a4 -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=out.pdf *.pdf 但是,shell扩展顺序不重现数字的自然顺序,而是按字母顺序: $ for f in *.pdf; do echo $f; done c0.pdf c10.pdf c11.pdf c12.pdf c13.pdf c14.pdf c15.pdf c16.pdf c17.pdf …

11
以.test而非./test的身份执行
假设我与可执行文件位于同一文件夹中,则需要输入以下内容才能执行该文件: ./file 我宁愿不必键入/,因为/我很难键入。 有没有更简单的方法来执行文件?理想情况下,只是一些简单的语法,例如: .file 或其他方式,但比必须在/该处插入字符要容易。 也许有某种方法可以在/bin目录中放置某些内容,或为解释器创建别名,以便可以使用: p file


5
将输出打印到3个单独的列
MYPATH=/var/www/html/error_logs/ TOTALFILE=$(ls $MYPATH* | wc -l) FILETIME=$(stat --format=%y $MYPATH* | head -5 | cut -d'.' -f1) FILE=$(ls -1tcr $MYPATH* | head -5 | rev | cut -d/ -f1 | rev) TOPLINE=$(head -1 $MYPATH* | grep -Po '".*?"' | head -5) 我如何优雅地将这5个文件信息打印到带有标题的列中? FILE CREATED TIME | FILE NAME | ERROR HEADER …


9
用于在命令行中复制和粘贴文件的剪贴板吗?
在Bash中,假设我访问一个目录,然后访问另一个目录。我想将文件从第一个目录复制到第二个目录,但不指定它们的长路径名。可能吗? 我的临时解决方案是/tmp用作存储文件副本的临时位置。cp myfile /tmp当我在第一个目录中时,然后cp /tmp/myfile .当我在第二个目录中时。但是我可以检查文件是否会覆盖中的任何内容/tmp。 是否有类似于剪贴板的用于复制和粘贴文件的内容?

3
shellcheck建议不要使用basename:为什么?
我正在尝试shellcheck。 我有这样的东西 basename "${OPENSSL}" 我得到以下建议 Use parameter expansion instead, such as ${var##*/}. 从实际的角度来看,我认为没有区别 $ export OPENSSL=/opt/local/bin/openssl $ basename ${OPENSSL} openssl $ echo ${OPENSSL##*/} openssl 由于basename是POSIX规范中的内容,因此我不认为这是最佳实践。有什么提示吗?

6
在扩展名之前将文本添加到文件名
我想在文件名的末尾但在扩展名前添加文本。现在我正在尝试, for f in *.shp; do echo $f_poly; done 输出是 Quercus_acutifolia.shp_poly Quercus_agrifolia.shp_poly Quercus_corrugata.shp_poly Quercus_cortesii.shp_poly Quercus_costaricensis.shp_poly Quercus_havardii.shp_poly Quercus_hemisphaerica.shp_poly Quercus_kelloggii.shp_poly Quercus_knoblochii.shp_poly Quercus_laceyi.shp_poly 我希望如此 Quercus_acutifolia_poly.shp Quercus_agrifolia_poly.shp Quercus_corrugata_poly.shp Quercus_cortesii_poly.shp Quercus_costaricensis_poly.shp Quercus_havardii_poly.shp Quercus_hemisphaerica_poly.shp Quercus_kelloggii_poly.shp Quercus_knoblochii_poly.shp Quercus_laceyi_poly.shp
25 bash  rename  filenames 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.