Linux创建以当前日期命名的文件夹

Linux创建以当前日期命名的文件夹  


今天不知道是做了一件好事还是泄漏了技术秘密,在邮件里告诉别人怎么在Linux下创建以当前日期命名的文件夹的方法。
         索性发到网上,全民共享,呵呵
       date '+%Y%m%d' |read a
       mkdir $a
       OK,这就行了!
另注:有朋友说这样实现不了,我觉得原因可能是需要在前面加一句:#! /bin/ksh
(这样可以将shell设置为ksh)
或者还有一种方式实现:
time=$(date '+%Y%m%d' )
mkdir $time








如何获得脚本文件所在路径


举个例子:
在/home/john/tmp下建立脚本文件test.sh
 
      1 #!/bin/bash
      2
      3 echo "The script is in ${PWD}"
在/home/john下执行它,得到输出为:The script is in /home/john
显然我们想要的是/home/john/tmp
我的解决办法:
      1 #!/bin/bash
      2
      3 ROOT_PATH=`dirname ${PWD}/$0`
      4
      5 echo $ROOT_PATH
无论在什么路径执行这个脚本都可以得到正确的输出了:The script is in /home/john/tmp






shell命令-拷贝文件


shell脚本名shell.sh
代码:
#!/bin/sh
if [ $# -eq 0 ]
then
    route='./'
fi
echo $route  
if [ ! -e $route ]
then
    exit
fi
if [ ! -d $HOME/test1 ]
then
   mkdir $HOME/test1
fi
cd $route
for file in `ls`
do
    if [  -d $file  ]
    then
      cp -rf $file $HOME/test1
    else
      cp $file $HOME/test1
    fi
done
代码实现功能:
把当前目录下的所有文件(包括文件夹)拷贝到$HOME/test1目录下
代码分析:
#!bin/sh 这是shell 脚本必须有的
首先这个代码要放在要被拷贝的目录下执行
if [ $# -eq 0 ]
then
    route='./'
fi                             #if判断结束标志
$#意思是参数的个数
-eq 意思等于
第一句就是判断执行./shell.sh时是否有加入参数(如./shell.sh 参数),没有参数把当前目录的符号'./'赋给route
 
echo $route        #输出route内容
 
if [ ! -d $HOME/test1 ]
then
   mkdir $HOME/test1
fi
 $HOME 可以通过在命令行输入echo $HOME进行查看 我输入的结果是/home/skygod 我的用户名是skygod
 (-d $HOME/test1) 是指该test1文件名是文件夹或文件夹存在,在前面加!是指该文件名不是文件夹或文件夹不存在,不存在,就重新在$HOME路径下(即/home/skygod)创建这个test1文件夹.
cd $route
就是cd ./ 就是进入到当前目录下
for file in `ls`
do                     #for循环开始标志
    if [  -d $file  ]
    then  
      cp -rf $file $HOME/test1
    else
      cp $file $HOME/test1
    fi                     #if结束标志
done                       #for 循环结束标志
for 循环遍历范围是 in后面的 `ls`  (强调ls旁边的不是引号而是!号左边的点)
`ls` 就是遍历判断该目录下所有文件
if [  -d $file  ]
-d $file 是判断该文件是不是文件夹
如果是 就要以拷贝文件夹的命令拷贝 拷贝文件夹要在cp 后面加-rf
如果不是 就用cp就可以了
拷贝命令 cp -参数 拷贝内容  拷贝目的
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值