python基础一 ------linux某目录下批量的为特定文件加入可执行权限
需求:
一个文件夹中有个文件,要求对特定的文件加入可执行权限
某文件系统目录下有一系列文件:
quicksort
graph.py
heap.java
install.sh
stack.cpp
.....
编写程序对所有的.sh文件和.py文件加上用户可执行权限
解决方法:
使用字符串的str.startswith()和str.endswith()方法
注意,多个匹配时参数使用元组
一:首先创建几个文件,如图(并没有可执行权限)
二:具体代码实现(还可以通过列表表达式)
实现效果:
讲解:
os.listdir(".") :将所在的文件夹下所有文件名以列表形式返回
x.endswith(".sh") 判断x这个字符串是否以.sh文件结尾
x.endwith((".sh",",py")) 判断这个字符串是否以.sh或者.py文件结尾;注意,必须是元组类型
执行权限是怎样被改变的?
os.stat("a.sh") 查看文件的属性
注:此部分参考了 这篇博文
st_mode ------> 权限模式(十进制)
st_ino ---------> inode number
st_dev ---------> device
st_nlike --------> number of hard links
st_uid --------> 所有用户的user_id
st_gid -----------> 所有用户组的group_id
st_size ----------> 文件大小,以位为单位
st_atime ---------> 文件最后的访问时间
st_mtime --------> 文件的最后修改时间
st_ctime ---------> 文件的创建时间
查看文件的权限信息,转八进制,看到 764
修改权限: 只需将文件的权限与stat.S_IXUSR进行或运算
python基础一 ------linux某目录下批量的为特定文件加入可执行权限的更多相关文章
- linux 查询目录下包含关键字的所有文件
linux查找目录下的所有文件中是否含有某个字符串 查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有 ...
- python实现指定目录下批量文件的单词计数:并发版本
在 文章 <python实现指定目录下批量文件的单词计数:串行版本>中, 总体思路是: A. 一次性获取指定目录下的所有符合条件的文件 -> B. 一次性获取所有文件的所有文件行 - ...
- python基础班-淘宝-目录.txt
卷 TOSHIBA EXT 的文件夹 PATH 列表卷序列号为 AE86-8E8DF:.│ python基础班-淘宝-目录.txt│ ├─1-1 Linux基础│ ├─01-课程简介│ │ 01-课程 ...
- linux查看目录下各个文件大小的命令
linux查看目录下各个文件大小的命令 由于需要经常查看各个文件的具体大小 ,所以这里记一下. 命令如下: du -h --max-depth=1
- linux替换目录下所有文件中的某字符串
linux替换目录下所有文件中的某字符串 比如,要将目录/modules下面所有文件中的zhangsan都修改成lisi,这样做: sed -i "s/zhangsan/lisi/g&quo ...
- [转帖]Linux /tmp目录下执行脚本失败提示Permission denied
Linux /tmp目录下执行脚本失败提示Permission denied https://www.cnblogs.com/linyfeng/p/11087655.html 国产化的环境上 就有一个 ...
- [转帖]linux /proc目录下的文件为何无法用vi编辑保存
linux /proc目录下的文件为何无法用vi编辑保存 https://blog.51cto.com/xlogin/1216914 学习一下 之前看过书 这一点 没太仔细看.. xlogin关注8人 ...
- Java基础知识强化之IO流笔记49:IO流练习之 复制指定目录下指定后缀名的文件并修改名称的案例
1. 复制指定目录下指定后缀名的文件并修改名称的案例 需求:复制指定目录下的指定文件,并修改后缀名. • 指定的文件是:.java文件. • 指定的后缀名是:.jad • 指 ...
- shell下批量重命名svn文件的方法
shell下批量重命名svn文件的方法 目标: 将svn目录下所有文件重命名 , 原文件前缀为 ucc_ , 批量改为 xmd_ 用tree看下当前svn目录 ucc_1.c ucc_1.h ucc_ ...
随机推荐
- bzoj 4011
看了好多篇题解才看懂的题,我实在太菜了... 首先根据一个我不知道的算法,可以证明在没有加入新的边的时候,原图的所有生成树的方案数就是所有点(除1以外)的度之积 那么在新加入这条边之后,我们仍然可以这 ...
- bzoj 1222
比较简单的背包dp,设计状态f[i][j]表示到了前i个物品,第一台机器加工时间为j,第二台机器加工所用的最小时间,然后背包转移即可 本题卡空间,需要滚动数组优化 本题卡时间,稍微卡下常就行 #inc ...
- 【C++ Primer | 11】关联容器(一)
在multimap或multiset中查找元素 第二种方法解释: #include <iostream> #include <utility> #include <ite ...
- Git基础(一) 创建项目仓库
一.取得Git项目仓库的两种方法: 在现有目录中初始化仓库 git init 如果是在一个已经存在文件的文件夹(而不是空文件夹)中初始化Git仓库来进行版本控制的话,应该跟踪这些文件并提交,通过git ...
- Go之viper配置
这个模块功能强大,读取配置,命令行,监听配置改变. 堪称多面手,在k8s,docker中,都多有应用. 这套应用,主要包括cobra,pflag,viper三件套. 了解得差不多啦...:) pack ...
- Nodejs全局安装和本地安装的区别
全局安装 全局安装方式是键入命令:npm install gulp -g 或 npm install gulp --global,其中参数-g的含义是代表安装到全局环境里面 安装位置:包安装在Node ...
- 替罪羊树&&非旋treap
题解: 替罪羊树的模板和splay差距还是比较大的.. 按照我的splay的写法 真是都是问题.. 替罪羊树就是暴力的搞 当某颗子树大小大于这棵树的alpha时 就退出 另外删除的时候打懒标记删除 当 ...
- centos 6.9安装python 3.6
.下载源码包在官网按照需要下载到本地 wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz .解压源码包 tar -xvf Pyt ...
- cropper.js图片裁剪
最近做电子名片的项目,可是个人照片展示上出现了 用户上传的图片尺寸严重失调,所以要求进行图片裁剪,再此我对图片裁剪进行调研 还不太成熟 以后再改 这个实现的原理是 前台获取到 坐标 图片的尺寸 原图文 ...
- 移动端自动化测试(一)之 Appium+Pyhton环境准备篇
移动端自动化测试(一)之 Appium+Pyhton环境准备篇 2016-11-17 16:51 by CockRoacher, 5046 阅读, 1 评论, 收藏, 编辑 由于工作的需要进行Andr ...