mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-28 03:27:44 +00:00
chmod: ignore symbolic links during recursive directory traversal
This commit is contained in:
parent
3272a590db
commit
ce385be575
2 changed files with 8 additions and 5 deletions
|
@ -234,9 +234,12 @@ impl Chmoder {
|
|||
|
||||
fn walk_dir(&self, file_path: &Path) -> UResult<()> {
|
||||
let mut r = self.chmod_file(file_path);
|
||||
if file_path.is_dir() {
|
||||
for dir_entry in fs::read_dir(file_path)? {
|
||||
r = self.walk_dir(dir_entry?.path().as_path());
|
||||
if !is_symlink(file_path) && file_path.is_dir() {
|
||||
for dir_entry in file_path.read_dir()? {
|
||||
let path = dir_entry?.path();
|
||||
if !is_symlink(&path) {
|
||||
r = self.walk_dir(path.as_path());
|
||||
}
|
||||
}
|
||||
}
|
||||
r
|
||||
|
|
|
@ -473,8 +473,8 @@ fn test_chmod_symlink_non_existing_file_recursive() {
|
|||
|
||||
let expected_stdout = &format!(
|
||||
// spell-checker:disable-next-line
|
||||
"mode of '{}' retained as 0755 (rwxr-xr-x)\nneither symbolic link '{}/{}' nor referent has been changed",
|
||||
test_directory, test_directory, test_symlink
|
||||
"mode of '{}' retained as 0755 (rwxr-xr-x)",
|
||||
test_directory
|
||||
);
|
||||
|
||||
// '-v': this should succeed without stderr
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue