(一)、创建文件和目录
1、创建目录(mkdir)
cd ~ : 进入用户主目录,例如我本身的这台机器的用户主目录就是/Users/songcuiting
(1)mkdir可以一次性创建一个或多个目录。
mkdir test test1 : 创建两个文件夹,一个test、一个test1
(2)用户也可以通过绝对路径来创建文件夹
mkdir ~/test/song : 在刚刚创建的test文件夹下面创建一个song的文件夹
(注意当我刚刚未创建test文件夹,即test文件夹不存在的情况下,mkdir会提示错误)
(3)mkdir提供了-p选项,用户完整的创建一个子目录结构
mkdir -p ~/test3/song
2 、创建文件(touch)
touch hello : 创建一个名字未hello的空文件
touch song.txt song.php : 一次创建两个文件
注:(1)用touch创建的文件是空文件(也是不包含任何内容的文件)。空文件对建立某些特定的实验环境是有用的。另外,当某些应用程序因为缺少文件而无法启动的时候,而这个文件其实不那么重要,其实是可以创建一个空文件暂时“骗过”这个程序。
(2)touch命令的另一个用途就是更新一个文件的创建时间和日期。例如,对于song.php这个文件,使用 ls -l 命令可以显示这个文件的创建时间。使用touch更新后创建时间就会变成执行touch命令的时间。而且不会改变原文件的内容。touch命令的这个功能在自动备份和整理文件时非常有用,这使得程序可以决定那些文件已经已经被备份或整理过。关于备份文件后面会详细讲解。
(二)移动、复制和删除
1、移动(mv)
(1)将文件或文件夹移动到指定的文件夹下
mv test bin/ #将test文件移动到bin文件夹下
mv song/ bin/ #将song文件夹移动到bin文件夹下
注:如果需要被移动的文件存在和要移动到的文件夹存在同名文件会怎么样呢。
经过测试以后发现,这种情况会直接将文件夹中的同名文件覆盖掉。这就相当于在我们不知情的情况下直接删除了一个文件。这是一件很恐怖的是事情。可能用户在不经意之间就删除了一个非常重要的文件,但是系统却没有给予任何警示。
(2)mv提供了-i选项用于发现这种情况
mv -i hello test/
mv:是否覆盖“test/hello”?
回答“y”表示覆盖,回答“n”表示跳过这个文件。
(3)mv提供了 -b 选项,用来用不同的方式处理刚的问题,在移动文件前,会在目标目录的文件名后加一个~,避免这个文件被覆盖
mv -b hello test/
cd test/
ls
hello hello~
2、重命名(mv)
(4)mv没有重命名其实很简单,原因很简单,因为没有这个必要,重命名无非就是将一个文件在同一个目录下移动,这是mv最擅长的工作
ls
hello hello~ #接着上面的讲
mv hello~ hello_bak
ls
hello hello_bak #相当于将hello~重命名为hello_bak(比较准确的描述是,mv可以在移动文件和目录的同时对其重命名)
3、复制文件和目录(cp)
将一个文件复制到某个文件夹下
cp test.php test/
注:和mv一样,cp默认情况下也会覆盖目标目录下的同名文件,也同样可以使用-i对这个文件进行提示,也可以使用-b选项对同名文件进行改名后在复制,这些操作和mv是一样的,就不解释了。
cp命令在执行复制任务的时候会自动跳过目录,因此可以使用-r选项将子目录连同其中的文件一起复制到另一个子目录下
cp -r test/ 桌面/ #就会将test文件夹下的子目录以及文件都复制到桌面这个文件的下面。
(三)删除目录和文件:rmdir和rm