交换两个文件的文件名

回复 收藏
写一个脚本用来互换两个文件的文件名。

{{{密码回复可见}}}

2015-08-07 09:55 举报
已邀请:
0

helu89

赞同来自:

练习
0

qq20847697

赞同来自:

看看
0

定海偶然

赞同来自:

#!/bin/bash
cat file1 >>cc
cat file2 >file1
cat cc >file2


.........
        
0

SunyBome

赞同来自:

学习
0

307141950

赞同来自:

丢人,我不怕,因为我是鬼
0

xueyongbo

赞同来自:

学习了
0

googleqicq

赞同来自:

学习下
0

978171887

赞同来自:

0

wangdi244

赞同来自:

在一个文件夹下创建两个文件 123.txt ,456.py
  1. #!/usr/bin/env python
  2. # coding=utf-8
  3. import os
  4. import shutil
  5. name_list = []
  6. list_name = os.listdir('/home/liujia')
  7. for i in range(0,len(list_name)):
  8.     name_list.append(list_name[i].split('.')[0])
  9. shutil.move('/home/liujia/'+name_list[0]+'.py','/home/liujia/'+name_list[1]+'.py')
  10. shutil.move('/home/liujia/'+name_list[1]+'.txt','/home/liujia/'+name_list[0]+'.txt')
  11. list_new_name = os.listdir('/home/liujia')
  12. print list_new_name
0

summer123

赞同来自:

看看。这个有路径要求?
0

qiaoxin360

赞同来自:

看看,给出的条件有点少
0

Linuxpp

赞同来自:

学习下
0

丶小作

赞同来自:

mark
0

fansze

赞同来自:

0

第六感

赞同来自:

{:4_109:}
0

哈哈琨少

赞同来自:

学习学习
0

邱石

赞同来自:

大致的思路:
  1. #!/bin/bash
  2. mv file1 new
  3. mv file2 file1
  4. mv new file2
  5. rm -rf new

其中file1 和 file2 是要互换文件名的文件
0

tjlygdx

赞同来自:

学习shell
0

渐行渐远

赞同来自:

学习
0

siudern

赞同来自:

1
0

hhaa0352

赞同来自:

学习
0

北辰星

赞同来自:

学习
0

北辰星

赞同来自:

这个脚本感觉有点小瑕疵,./2.sh  /shares/passwd  /shares/111运行不成功,显示找不到文件,后来改了一下,能够正常运行了
#!/bin/bash
file1=/shares/passwd
file2=/shares/111
exch_name() {
/bin/mv $1 /tmp/tmp
/bin/mv $2 $1
/bin/mv /tmp/tmp $2
}

exch_name $file1 $file2
0

robert

赞同来自:

lala
0

追风者

赞同来自:

1
0

小指头

赞同来自:

学习
0

maytheforth

赞同来自:

  1. #!/bin/bash
  2. # 文件名由参数传递 在/tmp下创建临时文件
  3. cat $1 > /tmp/tmpfile
  4. cat $2 > $1
  5. cat /tmp/tmpfile > $2
  6. rm -f /tmp/tmpfile   
0

lky

赞同来自:

瞄瞄
0

daiqing_rk

赞同来自:

看看
0

zhangzihao

赞同来自:

103131

0

吴天瑞

赞同来自:

学习
0

cmzsteven

赞同来自:

看一下
0

Shawn

赞同来自:

#!/bin/bash

read -p "please input two text: "  $1 $2
if [ -f $1 && -f $2 ] ;then
touch 3
cat $1 > 3
> $1
cat $2 > $1
> $2
cat 3 > $2
fi
不对,好像是括号那格式不对
0

demon_l

赞同来自:

#!/bin/bash
mv $1 "$1".bak
mv $2 $1
mv "$1".bak $2
0

oneliang

赞同来自:

看看
0

Rohero

赞同来自:

mv file1 file3
0

tutu

赞同来自:

q
0

小璇Linux

赞同来自:

学习
0

超大大

赞同来自:

学习 学习
0

杭州小白

赞同来自:

芝麻开门
0

杭州小白

赞同来自:

#!/bin/bash
read -p "Please input two files. The first:" file1
read -p "The second:" file2
/bin/mv $file1 /tmp/tmp
/bin/mv $file2 $file1
/bin/mv /tmp/tmp $file2
echo "It's OK.look test your files."
0

hlymlv

赞同来自:

学习
0

linux6688

赞同来自:

4848455644566
0

五弊三缺

赞同来自:

练习
0

krven

赞同来自:

1
0

温柔的笑猫

赞同来自:

1
0

ldp840611

赞同来自:

看看
0

yangjian319

赞同来自:

学习过了。
0

石头

赞同来自:

{:4_91:}
0

jinm

赞同来自:

学习
0

casparcc

赞同来自:

学习学习
0

Armani

赞同来自:

看看
0

qiqige

赞同来自:

学习
0

rolay8

赞同来自:

本帖最后由 rolay8 于 2015-12-26 21:50 编辑
  1. #!/bin/bash

  2. read -p "请输入两个要互换文件名称的文件:" file1 file2

  3. if [ -z $file2 ]; then
  4.     echo "必须输入两个文件的文件全名!"
  5.     exit 0
  6. elif [[ -d $file1 || -d $file2 ]]; then
  7.     echo "暂不支持文件和目录名称交换!"
  8.     exit 0
  9. elif [[ ! -f $file1 || ! -f $file2 ]]; then
  10.     echo "请勿输入不存在的文件!"
  11. fi

  12. /bin/mv $file1 tmpname
  13. /bin/mv $file2 $file1
  14. /bin/mv tmpname $file2

  15. echo "交换成功!"
0

考鸡蛋

赞同来自:

#!/bin/bash
name1=$1
name2=$2
if [ -f $name1 ] && [ -f $name2 ]
then
        temp=temp

        mv $name1 $temp
        mv $name2 $name1
        mv $temp $name2
else
        echo 文件 $name1 或文件 $name2 不存在,请输入正确的文件名
fi
0

weifeng1463

赞同来自:

ok
0

DSH20150916

赞同来自:

学习!
0

方琪

赞同来自:

1
0

Landon

赞同来自:

asd
0

一笑而过

赞同来自:

学习一哈。
0

xteplinux

赞同来自:

{:4_91:}
0

skylake_

赞同来自:

#!/bin/bash
read -p "please input filename1(or include path): " filename1
read -p "please input filename2(or include path): " filename2

mv filename1 filename_temp
mv filename2 filename1
mv filename filename_temp filename2
0

balich

赞同来自:

学习
0

wzwyql

赞同来自:

1
0

soul

赞同来自:

先学习一下,没有思路。
0

licengceng

赞同来自:

look look
0

weifan

赞同来自:

有思路,不会语法
0

loveyouhyf

赞同来自:

#!/bin/bash
##filename:jhname.sh
##写一个脚本用来互换两个文件的文件名
##write by 20160118
if [ -n "$1" ]&&[ -n "$2" ];then
a="$1"
b="$2"
mv $a ${a}.bak
mv $b $a
mv ${a}.bak $b
echo "the filename swith ok!"
exit 0
else
echo "the option is null,you must run again  with two option!"
fi
0

t0ny1988

赞同来自:

#!/bin/bash
read -p "input file1 name:" file1
read -p "input file2 name:" file2
if [[ -z "$file1" && -z "$file2" ]]
then
   echo "please input switch file name"
   exit 0
fi

/bin/mv $file1 $file1.bak
/bin/mv $file2 $file1
/bin/mv $file1.bak $file2

echo "switch done please check"
0

lin19890913

赞同来自:

看看
0

大漠之烟

赞同来自:

{:4_91:}
0

lyhabc

赞同来自:

#!/bin/bash
n1=$1
n2=$2

mv $1 /tmp/$n2
mv $2 $n1
mv /tmp/$n2  $n1
0

lyhabc

赞同来自:

定海偶然 发表于 2015-8-7 15:58
#!/bin/bash
cat file1 >>cc
cat file2 >file1

二进制文件就不行了  
0

lyhabc

赞同来自:

用/tmp目录做中介
#!/bin/bash
mv $1 /tmp/tmp
mv $2 $1
mv /tmp/tmp  $2
0

zkq_315

赞同来自:

本帖最后由 zkq_315 于 2016-1-28 11:43 编辑

只是一个测试,并不通用!
#!/bin/bash

dir1="/aming/test/file1"
dir2="/aming/test/file2"
#echo $(basename $dir1)
mv  $dir1  $(dirname $dir1)/mmm
mv $dir2 $dir1
mv $(dirname $dir1)/mmm $dir2
rm -rf $(dirname $dir1)/mmm

0

KICAZ629

赞同来自:

学习
0

magic2018

赞同来自:

M
0

落涧飞鹰

赞同来自:

看看
0

thedawn

赞同来自:

1
0

我是学渣

赞同来自:

{:4_99:}
0

lin13750529011

赞同来自:

谢谢
0

不怕不怕

赞同来自:

这个应该好写
0

we14578

赞同来自:

看看
0

sy0258

赞同来自:

学习
0

小猫咪

赞同来自:

学习
0

乐橙306

赞同来自:

1
0

zhangdailu

赞同来自:

学习学习
0

Linuxpp

赞同来自:

look
0

蔡炳森

赞同来自:

#!/bin/bash
read -p "请输入要替换的文件的名字:" m
read -p "请输入要替换的文件的名字:" n
cp $m /tmp/test.txt
rm -rf $m
mv $n $m
mv /tmp/test.txt $n
0

zxcv473199162

赞同来自:

学习
0

木头爱木头媳妇

赞同来自:

看看
0

wangxinpeng

赞同来自:

看看
0

kongfanqian

赞同来自:

可以了
0

elvis

赞同来自:

ddd
0

online189

赞同来自:

学习
0

linux-小莫

赞同来自:

看看
0

junlz

赞同来自:

看看学习一下
0

ilinux

赞同来自:

额!!!!
0

369666951

赞同来自:

kk
0

xlycamel

赞同来自:

看看

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: