linux下一个有意思的问题(文件名以短划线或空格开头)

linux下一个有意思的问题(文件名以短划线开头)

这本是无意中的一个发现。

在linux下,文件名中含有 - 是没有问题,但是如果文件名是以-作为第一个字符的,那么就比较麻烦了。

问题演示

看这里,以短划线开头的文件名似乎对mv cp  rm   等操作免疫了。利用这个特性可以制造出一些比较麻烦的文件或者文件夹来。

[email protected]:~$ ls
-python.md
[email protected]-pc:~$ mv -python.md 5-python.md
mv:无效选项 -- p
Try ‘mv --help‘ for more information.
[email protected]-pc:~$ mv "-python.md" 5-python.md
mv:无效选项 -- p
Try ‘mv --help‘ for more information.

解决办法

这个其实很好解决的嘛,问题的原因是因为其将 -当做了一个选项参数的标识,而导致找不到对应的文件。解决的办法就是想办法把这个-给隐藏起来咯。

[email protected]:~$ mv ./-python.md 5-pythom.md

文件名以空格开头

这里不打算说太多,原理是一样的。如果文件名以空格开头,必须知道空格的数目。

将要操作的文件名以单引号  ‘‘ 包裹起来

例如有一个文件名为 ” A" 注意,该文件名为三个空格加一个字母A。如果对其重命名,使用以下命令

mv `   A‘   新文件名
时间: 2024-10-11 05:44:53

linux下一个有意思的问题(文件名以短划线或空格开头)的相关文章

Linux下一个简单的日志系统的设计及其C代码实现

1.概述 在大型软件系统中,为了监测软件运行状况及排查软件故障,一般都会要求软件程序在运行的过程中产生日志文件.在日志文件中存放程序流程中的一些重要信息, 包括:变量名称及其值.消息结构定义.函数返回值及其执行情况.脚本执行及调用情况等.通过阅读日志文件,我们能够较快地跟踪程序流程,并发现程序问题. 因此,熟练掌握日志系统的编写方法并快速地阅读日志文件,是对一个软件开发工程师的基本要求. 本文详细地介绍了Linux下一个简单的日志系统的设计方法,并给出了其C代码实现.本文为相关开发项目Linux

Linux 下一个很棒的命令行工具

导读 Taskwarrior 是 Ubuntu/Linux 下一个简单而直接的基于命令行的 TODO 工具.这个开源软件是我曾用过的最简单的基于命令行的工具之一.Taskwarrior 可以帮助你更好地组织你自己,而不用安装笨重的新工具——这有时丧失了 TODO 工具的目的. Taskwarrior是一个开源.跨平台.基于命令行的 TODO 工具,它帮你在终端中管理你的 to-do 列表.这个工具让你可以轻松地添加任务.展示列表.移除任务.而且,在你的默认仓库中就有,不用安装新的 PPA.在 U

Memcahce(MC)系列(两)Linux下一个Memcache安装

Linux下一个memcache安装 memcache是高性能.分布式的内存对象缓存系统,用于在动态应用中降低数据库负载.提升訪问速度.眼下用memcache解决互联网上的大用户读取是很流行的一种使用方法,在互联网企业中有着广泛的应用. ?关于memcache的具体介绍,有兴趣的朋友请參考这篇文章:http://blog.csdn.net/xifeijian/article/details/21994941 1.下载memcache 墙裂推荐官方下载(http://memcached.org/)

linux 下一个 osw先从操作系统和标准脚本主动发起

linux 下一个 osw与操作系统的引导和启动标准的脚本.osw它指的是--os watcher,这是一个显示器os这些指标shell脚本.osw监测数据一般使用oracle技能评估os资源的使用,用法将作为oracle 有些技术人员考核oracle 数据库行为(比方节点驱赶等)的參考根据. [[email protected] ~]$ cat /etc/rc.local #!/bin/sh # # This script will be executed *after* all the ot

14行脚本配置Linux下一个Java环境变量

供Java人们刚开始学习.多半Java它需要花费大量的精力在开发环境的配置,于Linux下一个,构造Java环境变量,很可能加入这一努力. 为此,我做了一个bash脚本来配置自己主动Java环境变量.你只需要的例子,下面的脚本,你下载jdk压缩成一个目录.该脚本.并根据提示输入一些信息就可以. config_java.sh #!/bin/bash jdkpath=/usr/lib/java/ sudo mkdir $jdkpath read -p "Please input the name o

linux下一个网卡绑定多个ip

[[email protected] ~]# cd /etc/sysconfig/network-scripts/ [[email protected] network-scripts]# cp ifcfg-eth0 ifcfg-eth0:1 [[email protected] network-scripts]# vim ifcfg-eth0:1 DEVICE=eth0:1HWADDR=00:0C:29:73:E6:0DTYPE=EthernetUUID=98b5dc88-94c0-4a78-

linux下一个网卡配置多个ip【虚拟ip】

Linux下配置网卡ip别名何谓ip别名? 用windows的话说,就是为一个网卡配置多个ip. 什么场合增加ip别名能派上用场? 布网需要.多ip访问测试.特定软件对多ip的需要...and so on. 下面通过几个例子简单介绍一下如何使用ifconfig命令给网卡配置ip别名. 一.首先为服务器网卡配置静态ip地址 #ifconfig eth0 192.168.6.99 netmask 255.255.255.0 up eth0                     //机器的第一个网卡

linux下一个C语言要求CPU采用

部分   从灾难中 本来我想写一个小程序来测试CPU其他工具利用它可以检验类数据的性能.以后参考IPbench中间cpu_target_lukem插件实现我们的功能.原理非常简单:就是我们给程序设置了极低的优先级,假设有不论什么计算任务都会打断它,而假设没有计算任务,我们的程序就会占用cpu时间,所以我们的程序的执行时间基本上能够算作CPU的闲暇时间. 所以我们计算总的CPU利用率的方法就是  : CPU利用率 = 1 - 程序占用cpu时间/程序总的执行时间. 主要功能实现代码例如以下: [c

Linux下一个CD翻录 创CUE 压缩flac攻略

于Windows我们通常使用较低EAC翻录压缩发生器CUE找工作的步骤,但在Linux在稍微有点麻烦.每一步,我们需要自己做.经过我的反复尝试寻找和总结了相当不错的方法,使用软件和步骤如下面的. 使用到的软件:abcde,mkcue,flac.(它们全都是命令行下的软件,请大家自行安装. ) abcde的名字非常有意思,他的全名是:a better cd encoder.它依赖cdparanoia.它能够自己主动连接CDDB数据库获取cd信息,而且在软件执行过程中我们还以手动改动这些信息(只是建