linux比较两个文件的不同_linux比较两个文件大小

2025-04-08 13:00 - 立有生活网

在linux下,对比两个文件的时间,哪个更新,用c写个吧。例如,文件A的mtime是19901220122222 到秒。

在linux中输入cd /命令,进入Linux的根目录下。

时间通过一个约定的类型time_t处理,这是一个大到可以容纳以秒计算日期和时间的整数类型。在linux系统中,它是一个长整形,即使是32位长整型,也可以用到2038年。到那时我们希望使用64位的系统解决这个问题。

linux比较两个文件的不同_linux比较两个文件大小linux比较两个文件的不同_linux比较两个文件大小


linux比较两个文件的不同_linux比较两个文件大小


#include

#include

int main(int argc,char argv[])

{if(argc!=3)

{fprintf(stderr,"usage: %s n",argv[0]);

exit(1);

}struct stat bufdone1;

struct stat buf2;

if(lstat(argv[1],&buf1)<0 || lstat(argv[2],&buf2)<0)

{perror("lstat error");

exit(2);

}/ print time /

printf("%s: %ld %s: %ldn",argv[1],buf1.st_mtime,argv[2],buf2.st_mtime);

/ print time difference /

printf("%ldn",buf1.st_mtime-buf2.st_mtime);

return 0;

}

请问各位linux高手们,/etc/目录下的profile与bashrc两个文件有什么区别? 请告诉,谢谢。

仔细观察/usr目录,你会发现这个目录下面也有bin和in等一些根目录下的目录。usr不是user的缩写,而是unix software resource的缩写,里面存放的都是用户后来安装的软件

我只知道bashrc是会影响你的终端启动参数的。你可以写一些脚本放到这里,然后你启动flag=0终端后就会自动执行。很多程序的环境变量都需要写到bashrc这个文本里。

我只知道bashrc是会影响你的终端启动参数的。你可以写一些脚本放到这里,然后你启动终端后就会自动执行。很多程序的环境变量都需要写到bashrc这个文本里。

bashrc用于交互式non-loginshell,而profile用于交互式login shell

/etc/profile:为系统的每个用户设置环境信息,当一个用户登录时,该文件被执行

/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。也就是说,当用户shell执行了bash时,运行这个文件

/etc/profile:此文件为系统的每个用户设置环境信息,当用户次登录时,该文件被执行.

/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.

简单点应该是profile是全局变量,开机的时候就会调用的,.bashrc是你所使用用户的变量,只有你登录相应用户的时候才会调用

profile是每次系统登陆的时候家在的 bashrc只要新开一个窗口都会加载

/etc/profile:此文件为系统的每个用户设置环境信息,当用户次登录时,该文件被执行,并从/etc/profile.d目录的配置文件中搜集shell的设置,

/etc/bashrc:为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。

~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。

~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取。

另外,站长团上有产品团购,便宜有保证

给你几个用户配置参数全的吧。

/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc很容易混淆,他们之间有什么区别?它们的作用到底是什么?

/etc/profile: 用来设置系统环境参数,比如$PATH. 这里面的环境变量是对系统内所有用户生效的。

/etc/bashrc: 这个文件设置系统bash shell相关的东西,对系统内所有用户生效。只要用户运行bash命令,那么这里面的东西就在起作用。

~/.bash_profile: 用来设置一些环境变量,功能和/etc/profile 类似,但是这个是针对用户来设定的,也就是说,你在/home/user1/.bash_profile 中设定了环境变量,那么这个环境变量只针对 user1 这个用户生效.

~/.bashrc: 作用类似于/etc/bashrc, 只是针对用户自己而言,不对其他用户生效。

另外/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系.

~/.bashrc 是交互式 non-login 方式进入 bash 运行的,用户不一定登录,只要以该用户身份运行命令行就会读取该文件。

diff命令 文件比较如何忽略行数不一致的问题

#如果没有md5sum可以用openssl md5代替

mkdir ~/{source,patch}

#include

cp a ~/source/a

cp b ~/patch/a

diff -u ~/source/a ~/patch/a

linux 使用的是GNU版的diff, -u的意思是合并这两个文件。要让diff让为这两个文件是一样的,重命名为相同的文件名即可,这样就不能把这两文件放在同一个目录下,得分开它俩。

如何进入Linux根目录??

#创建备份目录

用LINUX SHELL命令。

[-bBi]

以下是最常用的几个目录的写法:

1、/ 代表根目录

4、~ 当前用户的默认工作目录

注:目录可以省略不写, 与cd ~ 有相同的效果。

扩展资料:Linux Shell常用shell命令

Linux Shell常用shell命令

1、ls命令

功能:显示文件和目录的信息

ls以默认方式显示当前目录文件列表

ls -a 显示所有文件包括隐藏文件

ls -l 显示文件属性,包括大小,日期,符号连接,是否可读写及是否可执行

ls -lh 显示文件的大小,以容易理解的格式印出文件大小 (例如 1K 234M2G)

ls -lt 显示文件,按照修改时间排序

2、cd命令

功能:改名目录

cd dir切换到当前目录下的dir目录

cd /切换到根目录

cd ..切换到到上一级目录

cd ~切换到用户目录,比如是root用户,则切换到/root下

3、cp命令

功能:copy文件

cp source target将文件source为target

cp /root /source.将/root下的文件source到当前目录

cp – soure_dir target_dir将整个目录,两目录完全一样

4、rm命令

功能:删除文件或目录

rm file删除某一个文件

rm -f file 删除时候不进行提示。可以于r参数配合使用

rm -rf dir删除当前目录下叫dir的整个目录

5、mv命令

功能:将文件移动走,或者改名,在uinx下面没有改名的命令,如果想改名,可以使用该命令

mv source target将文件source更名为target

6、diff

功能:比较文件内容

diff dir1 dir2比较目录1与目录2的文件列表是否相同,但不比较文件的实际内容,不同则列出

diff file1 file2比较文件1与文件2的内容是否相同,如果是文本格式的文件,则将不相同的内容显示,如果是二进制代码则只表示两个文件是不同的

comm file1 file2比较文件,显示两个文件不相同的内容

Linux shell命令用法:

cd “你想要进的目录” //如果想要进的目录中目录名称中含有空格、中文或其它特殊字符时用双引号包括。

以下为最常用的几个目录的写法:

1、/ 代表根目录

4、~ 当前用户的默认工作目录

5、目录可以省略不写, 与cd ~ 有相同的效果

扩展资料:

1、cd :切换目录

用法:cd

cd ../ 切换到上级目录

cd ~ (或只有cd )切换到当前用户主目录(home底下以用户名命名的文件夹) /root目录

mkdir 创建目录

mkdir 目录名 -p 递归创建目录

2、rmdir 删除空目录

用法:rmdir 目录名

也可用:rm -rf 目录名

3、ls 查看目录或文件信息

主要选项:

-l 列出目录或者文件的详细信息。比如权限、修改时间等等

-a 列出当前目录下所有文件,包括隐藏文件(已点开头的都是隐藏文件)

使用LINUX cd命令,使用cd /进入根目录。

cd “你想要进的目录” 当目录名称中含有空格、中文或其它特殊字符时请用双引号包括

以下是最常用的几个目录的写法:

/ 代表根目录

. 当前目录

.. 上级目录

~ 当前用户的默认工作目录,如果目录省略不写, 与cd ~ 有相同的效果进入默认工作目录

LINUX SHELL命令

用法

以下是最常用的几个目录的写法:

/ 代表根目录

. 当前目录

.. 上级目录

~ 当前用户的默认工作目录

目录可以省略不写, 与cd ~ 有相同的效果

所有的文件都是放在/ 根目录上的,你可以把他想成是一个电脑的硬盘

然后通过分区,划出了/home, swap,/etc,/opt等目录

Linux 里有/lib和/usr/lib,这两个目录下的库文件有什么区别吗?如果没区别为什么又要分开放呢

cd / 切换到根目录

/lib-----系统本身自带的库存放处%ns

/usr/lib-----安装完成后用户自己安装的库文件的存放处

linux shell 怎样比较两个数组的内容,并且把不同的部分输出

Linux常用命令:

unset 不能这么用,需要指定数组索引,也各个目录有他个子的含义,/home一般存放用户的个人文件就是数组下标,而不是数组的值,你可以这样干:

#check if there are any files added

folder_list=(1 2 3 4 5)

file_list=(1 2)

declare -a result_list

t=0

echo folder_list=${folder_list[]}

echo file_list=${file_list[]}

for m in "${folder_list[@]}"

do

for l in "${file_list[@]}"

do

if [ "$m" == "$l" ]; then

flag=1

break

fi

if [ $flag -eq 0 ]; then

result_list[t]=$m

t=$((t+1))

else

fi

echo result_list=${result_list[]}

弄个结果数组保存结果,把在file_list里找不到的folder_list值存到结果数组中。

循环比较目录中的多个文件,当两个文件某个内容相同的就移除这两个,继续比对,LinuxSHELL脚本怎么写?

cd ../..切换到上二级目录

#!/bin/bash

if [ ! -e /opt/backup ];then

mkdir $BACKUP;

fi

#设定目录及文件

BACKUP=/opt/backup

SRC=/test一、文件、目录作命令

HASHFILE=/opt/backup/hashfile.txt

REPEATHASH=/opt/backup/repeathash.txt

#给所有文件生成hash值

find $SRC -type f -exec md5sum {} ; > $HASHFILE

#查询重复的hash值

find $SRC -type f -exec md5sum {} ;|awk '{print $1}' |sort |uniq -c |awk '{if($1>1)print $2}' > $REPEATHASH

#find $SRC -type f -exec openssl md5 {} ;|awk '{print $2}'|sort |uniq -c |awk '{if($1>1)print $2}' > $REPEATHASH

#查询hash有重复的文件并move到备份目录

for HASH1 in `cat $REPEATHASH`;do

mv `grep $HASH1 $HASHFILE |awk '{print $2}'` $BACKUP

done;

linux下的patch命令

估计你执行 patc用法:h 的源文件和你svn里的revision 1880 在 1done #for command ;do command ; done的循环到此结束。7 行附近不匹配。

另外,确认一下 com/cdp/platform/webadmin/taglib/MenuTag.ja 和你 svn 里的同一文件匹配。

linux shell 编程如何实现两个文件的同步。

删除,因为是删除,所以d后面通常不接任何参数

Linux系统下实现文件同步的shell脚本,代码如下:

#!/bin/bash

mount /dev/hda6 /mnt/d 2>/dev/null ; unalias rm cp

rm /share/c/app/o /share/c/tmp/o /share/c/app/core /share/c/tmp/core /share/c/app/a.out /share/c/tmp/a.out

find /share -print >/tmp/.share_

#把/sha#比较两个文件里/tmp.d_ 与/tmp./share_的不同。re的所有文件的全名保存到/tmp/.share_

find /mnt/d/share -print |sed 's///mnt//d//g' >/tmp/.d_

chmod 700 /tmp/.share_ /tmp/.d_

count=0

for i in $(comm -23 /tmp/.d_ /tmp/.share_) ; do

echo "/mnt/d$i"

rm "/mnt/d$i" ; count=$((count+1))

#删除/mnt/d/share/里的多余的文件和计数。

echo "del $count file at /mnt/d/share/"

find /mnt/d/share -print |sed 's///mnt//d//g' >/tmp/.d_ ; count=0

#重新获得文件的全名。初始化计数器。

for i in $(comm -23 /tmp/.share_ /tmp/.d_) ; do

echo $i

cp $i "/mnt/d$i" ; count=$((count+1))

#备份/share里新增加的文件到/mnt/d/share,同时计数。

echo "already copied $count file from /share to /mnt/d/share " ;sync

umount /mnt/d 2>/dev/null

给个我自己的方向给你,如果你AB2个文件夹都相同的话

DIRA=`ls -l A | awk '{print $6}' | sort` //看A目录下文件时间,并排序,把内容赋值到变量DIRA

DIRB=`ls -l B | awk '{print $6}' | sort` //看A目录下文件时间,并排序,把内容赋值到变量DIRB

diff $DIRA $DIRB | grep “<" //对比2个文件。

然后进行处理,需要弄一个shell程序,然后放在crontab里面执行。

具体你自己琢磨。

没有其它特殊需求的话,下面这一行命令就能完成你的工作

rsync -z /yourpath/A /yourpath/B

有空可以man rsync一下

man rsync 看看它的帮助

黑莓当蓝牙键盘(黑莓蓝牙键盘功能)

想买个键盘给手机用,有没有这种产品? 有,一般的键盘都能用,关键是你手机得支持OTG,把键盘接收器插在OTG线上就能用了。 黑莓当蓝牙键盘(黑莓蓝牙键盘功能) 黑莓当蓝牙键盘(黑莓蓝牙键盘···

母亲节的简笔画 母亲节的简笔画彩色

母亲节的花束怎么画 母亲节简笔画8 母亲节可以画康乃馨,因为康乃馨的花语表达了对母亲的爱。接下来分享康乃馨的两种画法。 母亲节的简笔画 母亲节的简笔画彩色 母亲节的简笔画 母亲节的简···

宠物小精灵xy&amp;z 宠物小精灵xyz全集

口袋妖怪“xy洛托姆”怎么改变形态? 在中间的大城市博士的研究所2楼调查右下角的纸箱就可以变形。 宠物小精灵xyamp;z 宠物小精灵xyz全集 宠物小精灵xyz 宠物小精灵xyz全集 配我现在只想说一句,···