Skip to content

Preserve directory permissions in File.cp_r/3#15155

Merged
josevalim merged 1 commit intoelixir-lang:mainfrom
pnezis:fix-cp_r-directory-permissions
Mar 9, 2026
Merged

Preserve directory permissions in File.cp_r/3#15155
josevalim merged 1 commit intoelixir-lang:mainfrom
pnezis:fix-cp_r-directory-permissions

Conversation

@pnezis
Copy link
Copy Markdown
Contributor

@pnezis pnezis commented Mar 9, 2026

The documentation states that cp_r/3 maintains "modes" when copying, but directory permissions were not being preserved - only file permissions.

To reproduce:

iex> File.mkdir_p!("/tmp/src/inner")
iex> File.chmod!("/tmp/src/inner", 0o700)
iex> File.cp_r!("/tmp/src", "/tmp/dest")
iex> File.stat!("/tmp/src/inner").mode
16832
iex> File.stat!("/tmp/dest/inner").mode
16877

Comment thread lib/elixir/test/elixir/file_test.exs Outdated
The documentation states that `cp_r/3` maintains "modes" when copying, but
directory permissions were not being preserved - only file permissions.
@pnezis pnezis force-pushed the fix-cp_r-directory-permissions branch from 1f09ea3 to bc7207f Compare March 9, 2026 12:59
@josevalim josevalim merged commit 52c58c7 into elixir-lang:main Mar 9, 2026
15 checks passed
@josevalim
Copy link
Copy Markdown
Member

💚 💙 💜 💛 ❤️

@pnezis pnezis deleted the fix-cp_r-directory-permissions branch March 11, 2026 10:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants